常见网站服务
- 静态资源
apache.org
nginx.org
- 动态资源
PHP:php.net 终端浏览器进行访问
tomcat: 利用移动端进行访问
python: 开发难度较低
nginx服务的软件特点
①支持高并发、消耗资源少
②具有多种功能
③网站web服务功能——————apche
④网站负载均衡功能----LVS
⑤网站缓存服务——————squid
⑥多种平台部署
⑦nginx实现网络通信使用的异步I/O模型,epoll模型(select模型---apche)
epoll模型:
找人,根据登记的去找(索引找)
select模型:
招人,一个一个去问,线性轮询(全部扫描一遍)
nginx网站服务安装
1、yum安装
a、使用官方yum源,版本新,目录规范
vim /etc/yum.repos.d/nginx.repo
yum install -y nginx #安装nginx
systemctl start nginx #启动nginx
systemctl enabled nginx #开机自启
b、使用非官方yum源
2、编译安装
a、wget http://nginx.org/download/nginx-1.16.0.tar.gz
PS:解决依赖openssl-devel pcre-devel
b、解压下载好的软见包,进入目录
c、编译安装三部曲:
①配置 ./configure 选项 ./configure --help
②编译 make
⑤安装 make install echo $? #查看上一步操作是否成功
nginx目录结构
路径信息 | 类型信息 | 作用 |
---|---|---|
/etc/logrotate.d/nginx | 配置文件 | 日志轮训切割 |
/etc/nginx | 配置文件 | nginx主配置文件 |
/etc/nginx/nginx.conf | 配置文件 | nginx主配置文件 |
/etc/nginx/conf.d | 配置文件 | nginx主配置文件 |
/etc/nginx/conf.d/default.conf | 配置文件 | nginx主配置文件 |
/etc/nginx/fastcgi_params | 配置文件 | cgi、fastcgi、uwcgi主配置文件 |
/etc/nginx/scgi_params | 配置文件 | cgi、fastcgi、uwcgi主配置文件 |
/etc/nginx/uwscgi_params | 配置文件 | cgi、fastcgi、uwcgi主配置文件 |
/etc/nginx/koi-utf | 配置文件 | nginx编码转换映射配置文件 |
/etc/nginx/koi-win | 配置文件 | nginx编码转换映射配置文件 |
/etc/nginx/win-utf | 配置文件 | nginx编码转换映射配置文件 |
/etc/nginx/mime.types | 配置文件 | http协议的content-type与扩展名 |
/usr/lib/systemd/system/nginx-debug.service | 配置文件 | nginx守护进程文件 |
/usr/lib/systemd/system/nginx.service | 配置文件 | nginx守护进程文件 |
/etc/nginx/modules | 配置文件 | nginx模块目录 |
/etc/lib64/nginx | 配置文件 | nginx模块目录 |
/etc/lib64/nginx/modules | 配置文件 | nginx模块目录 |
/usr/sbin/nginx | 命令信息 | nginx终端管理命令 |
/usr/sbin/nginx-debug | 命令信息 | nginx终端管理命令 |
/usr/share/doc/nginx-1.14.2 | 目录信息 | nginx帮助手册 |
/usr/sbin/man/man8/nginx.8.gz | 目录信息 | nginx帮助手册 |
/usr/sbin/share/nginx | 目录信息 | nginx默认站点目录 |
/usr/sbin/share/nginx/html | 目录信息 | nginx默认站点目录 |
/usr/sbin/share/nginx/html/50X.html | 目录信息 | nginx默认站点目录 |
/usr/sbin/share/nginx/html/index.html | 目录信息 | nginx默认站点目录 |
/var/cache/nginx | 目录信息 | nginx缓存目录信息 |
/var/log/nginx | 目录信息 | nginx日志目录信息 |
日志切割方法一:利用脚本切割
#!/bin/bash
mv /var/log/nginx/access.log /var/log/nginx/access_$(date + %F).log
systemctl restart nginx
日志切割方法二:利用文件切割程序--logrotate
vim /etc/logrotate.conf #配置文件
nginx服务配置文件
vim /etc/nginx/nginx.conf #主配置文件
user nginx; -----定义worker进程管理的用户
PS:nginx进程
master process:主进程,Boss
worker process:工作进程,员工
worker_process:1 -----工作进程的个数,最好等于硬件服务器cpu的核数或者核数的2倍
error_log /var/log/nginx/error.log
pid /var/run/nginx.pid ----nginx启动之后就会存在一个文件(linux一切皆文件,一个启动进程对应一个文件)
events{
worker_connections 1024; ---一个worker进程可以同时接受1024个请求
}
http{
include /etc/nginx/mime.types;----加载一个配置文件
default_type application/octet-stream; ---默认识别文件类型
log_format 。。。 ----日志格式
access_log 。。。 ----日志路径
sendfile on; ----优化使用
#tcp_nopush on; ----优化使用
keepalive_timeout 65; ---超时时间(单位是s)
#
}
vim /etc/nginx/nginx.d/default #扩展配置(虚拟主机配置文件)
server模块 #网站/站点/虚拟主机
server{
listen 80; #要监听的端口
server_name localhost; #网站域名
location / {
root /usr/share/nginx/html; #站点目录
index index.html index.htm; #默认访问
}
error_page 500 502 503 504 /50x.html #优雅的显示文件信息
location = /50x.html{
root /usr/share/nginx/html
}
}
nginx服务的企业应用
1、利用nginx搭建网站
a、编写主机配置文件
cd /etc/nginx/conf.d/
vim www.conf
server{
listen 80;
server_name www.name.com;
locatioin / {
root /usr/share/nginx.html
index test.html
}
}
b、获取项目文件
c、重启nginx启动——平滑重启
systemctl reload nginx
nginx --help #提供nginx 信息
nginx -T
nginx -t #语法检测
d、编写DNS配置信息
真实域名:购买域名,在阿里云上配置,注意需要备案
模拟域名:hosts
nginx配置文件默认参数说明
1、location的原理
nginx简单网站搭建(html)
nginx服务常见应用
虚拟主机访问方式
1、基于域名的方式访问
2、基于地址的方式访问:只能使用指定的地址----负载均衡+高可用服务
nginx涉及到地址的修改,需要重新启动服务,平滑重启没有左右
3、基于端口方式访问:zabbix服务(apache) + web服务(nginx)——主机
网站页面的访问原理
1、域名解析
2、TCP链接(四次协议)——目标端口
3、根据引用层HTTP协议发出请求
请求报文
4、没有相同域名的server,解析的时候匹配第一个配置的文件
nginx搭建多个网站
1、创建多个虚拟主机配置文件
2、在站点创建文件目录
3、编写hosts解析文件
4、systemctl reload nginx
安全配置
1、根据用户访问的地址访问
10.0.0.0/24 www.test.com/AV/ 不能访问
172.16.1.0/24 www.test.com/AV/ 可以访问
nginx访问模块:nginx_http_auth_basic_module
location / {
deny
allow
}
2、根据用户访问进行认证
nginx访问模块:nginx_http_access_module
location / {
auth_basic "closed site"; ---开启用户认证功能
auth_basic_user_file conf/htpasswd; ---加载用户密码文件
}
PS:配置文件中的路径最好使用相对路径
密码文件中的内容必须是密文
chmod 600 ./passwd
curl 域名IP -u test:123456 #提供用户密码访问
nginx的uri匹配处理
location = xxx #精确匹配
location ^~ xxx #优先匹配
location ~ #区分大小写
location ~*
location uri #根据uri进行匹配
location / #默认匹配
LNMP
L——linux
注意:
a、selinux必须关闭 防火墙关闭
b、/tmp 1777权限 mysql服务无法启动
N——nginx服务
作用:
a、处理静态文件
P——php服务部署
作用:
a、动态数据供应商
b、和数据库建立连接
1、卸载——php服务(自带的)
yum remove php php-fpm php-common
2、更新yum源
rpm -Uvh 。。。
3、安装php服务
M——mysql服务
a、yum安装——慢
b、编译安装会报错
部署:
1、 获取代码信息(git)
2、
www网站页面:http://www.dedecms.com/
bbs网站页面:http://www.discuz.net/forum.php
blog网站页面:https://cn.wordpress.org
wecenter网站页面:https://www.wecenter.com/?copyright
3、解压代码放入到站点目录中
4、修改站点目录权限
chown -R
5、网站初始化
~~
~~
常见错误
1、配置文件书写问题
404:
a、修改nginx配置文件——location
b、在站点目录创建相应的目录文件
403:
a、不要禁止访问
b、没有首页文件
500:
a、内部程序代码编写有问题
b、程序服务中文件权限不正确
386
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。