第三章 nginx程序服务目录结构
/etc/logrotate.d/nginx
利用logrotate实现日志文件自动切割
/etc/nginx/nginx.conf
主配置文件
/etc/nginx/conf.d/default.conf
扩展配置文件
/etc/nginx/fastcgi_params
定义nginx接口方式
接口方式 fastcgi 对应(php)
接口方式 uwsgi_params 对应(python)
usr/sbin/nginx
程序命令文件
检查配置文件语法是否正确 nginx -t
控制服务运行状态 nginx(启动服务) nginx -s stop/reload
查看软件安装配置信息 nginx -V
usr/share/nginx/
站点目录将网站页面所有元素资源进行整合,分类规范管理
/var/log/nginx/
保存程序日志文件信息 (access.log error.log)
/var/cache/nginx
缓存功能存放缓存目录 (查看数据信息是否真正缓存了)
nginx 配置文件
nginx配置文件分为主配置文件和扩展配置文件
主配置文件配置各项具体参数
主配置文件: nginx.conf
配置文件路径: /etc/nginx/nginx.conf
只看有内容行: grep -v "^$" /etc/nginx/nginx.conf
user nginx; 指定worker进程管理用户(建议指定为虚拟用户)
worker_processes 4; 指定worker进程数量 进程数越多并发处理能力越强
建议设置数值=CPU核数 在高并发下建议临时设置数值=2*CPU核数
error_log /var/log/nginx/error.log warn; 配置错误日志保存路径
pid /var/run/nginx.pid; 配置程序pid文件保存路径
以上信息: nginx主区域配置信息
以下信息: nginx事件区域配置信息
events { 定义worker区域
worker_connections 1024; 定义一个worker进程最大连接数
(建议小于系统打开文件连接数) ulimit -a查看系统打开文件最大数值
}
定义HTTP服务区域
http {
include /etc/nginx/mime.types; --- 包含其他配置文件信息 (定义能够处理的媒体资源类型)
default_type application/octet-stream; --- 资源信息没有扩展名,默认识别成什么资源类型
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 设置日志信息格式
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; 配置日志保存路径
sendfile on;
#tcp_nopush on;
keepalive_timeout 65; 是否开启长链接功能(数值为0 就是开启短链接功能)
#gzip on; 是否压缩传输数据
include /etc/nginx/conf.d/*.conf; 加载扩展配置文件路径
}
扩展配置文件基础配置
扩展文件配置信息:
/etc/nginx/conf.d/default.conf
[root@web02 conf.d]# cat default.conf
server {
listen 80; --- 指定服务监听端口号 默认是80
server_name www.xxx.com; --- 配置网站域名信息
location / {
root /html/; --- 站点目录信息
index index.html index.html; --- 指定首页文件 首页文件不存在,访问网站会报403错误
error_page 404 500 502 503 504 /xxx.jpg; --- 优雅显示错误页面配置
}
}
补充说明:
nginx进程信息
master进程: 控制nginx服务运行状态
worker进程: 处理用户访问网站请求nginx配置文件语法规范
a 指令信息结尾必须有分号
b 括号信息必须成对出现nginx配置区域说明:
a) 主区域配置 配置错误日志 进程信息 worker进程用户
b) 事件区域配置 配置worker进程连接数信息
c) HTTP 区域 配置功能参数 优化有关系
d) server 区域 配置网站功能参数
e) if 区域 用于匹配url区域
f) locatio 区域 用于匹配uri,定位到不同的处理方式上.( location 的匹配顺序是“先匹配正则,再匹配普通”)
location匹配
location ~* /js/.*/\.js
以 = 开头,表示精确匹配;如只匹配根目录结尾的请求,后面不能带任何字符串。
以^~ 开头,表示uri以某个常规字符串开头,不是正则匹配
以~ 开头,表示区分大小写的正则匹配;
以~* 开头,表示不区分大小写的正则匹配
以/ 开头,通用匹配, 如果没有其它匹配,任何请求都会匹配到
if格式匹配内容 匹配变量 等
多用于匹配url
匹配 uri内容带有.jpg的访问进行跳转
if ( $requset_uri ~* “.(jpg|xxx)$”) {
xxx内容
}
系统打开文件数
程序运行起来,程序会打开相应文件 每打开一个便计做一个文件数
ulimit -a
查看最大文件数
如果打开系统文件数不足 会导致有些服务不能够运行
修改文件打开数最大值
echo '* - nofile 65535' >>/etc/security/limits.conf