2025.6.5学习日记 Nginx主目录文件 .conf介绍、热部署 定时日志切割
Nginx
主目录文件功能介绍

nginx.conf(唯一配置文件):
-
nginx.conf是由指令和指令块组成
-
每一行语句由分号结束,指令和参数之间是有空格分离的
-
指令块由大括号{}组织多条语句
-
nginx.conf使用#表示注释符
-
nginx.conf也支持$变量名命名语法
-
nginx支持include语句(引入其它文件的配置)进行组合多个配置文件 (必须以conf结尾)
-
shift+数字5 索引括号
netstat -tunlp:查看网络连接和端口监听信息
定义运行工作模式:
#keepalive:超时时间 (超时多久自动断开)
keepalive_timeout 60;
静态资源压缩功能:
Server块
nginx命令选项:
nginx-master信号传递:
1.master主进程是不处理请求的,而是分配请求发给worker进程,主进程负责重启,热加载,热部署等等
2.master是根据nginx.conf中worker_process定义启动时创建的工作进程数
3.当worker运行后,master就处于一个等待的状态,等待用户的请求来临,或者系统信号
4.系统管理员可以发送kill指令,或者nginx-s信号,这样的形式操控nginx
nginx信号功能:
nginx.conf重要的指令块:
核心功能都在于http{}指令块里,http{}块还包含了以下指令:
-
server{}指令块,对应一个站点配置,反向代理,静态资源站点
-
location{},对应一个url
-
upstream{},定义上游服务,负载均衡池
nginx的热部署:
usr2信号:
平滑升级 Nginx 二进制文件:在不中断服务的情况下,将运行中的 Nginx 进程升级到新版本。
重新加载配置文件:与 HUP
信号不同,USR2
会保留旧版本进程,便于回滚。
WINCH信号:
平滑关闭工作进程:在升级或配置重载时,逐步关闭旧工作进程,避免中断现有连接。
不影响主进程:仅关闭工作进程,主进程继续运行。
场景 1:平滑升级 Nginx
# 1. 备份旧二进制文件和PID文件 cp /usr/sbin/nginx /usr/sbin/nginx.old mv /var/run/nginx.pid /var/run/nginx.pid.oldbin # 2. 替换新二进制文件 cp /path/to/new/nginx /usr/sbin/nginx # 3. 发送USR2启动新主进程 kill -USR2 $(cat /var/run/nginx.pid.oldbin) # 4. 确认新进程正常工作后,发送WINCH关闭旧工作进程 kill -WINCH $(cat /var/run/nginx.pid.oldbin) # 5. 若升级失败,回滚到旧版本 kill -HUP $(cat /var/run/nginx.pid.oldbin) # 恢复旧工作进程 kill -QUIT $(cat /var/run/nginx.pid) # 关闭新主进程
场景 2:逐步重启工作进程(不升级)
# 1. 发送USR2创建新主进程(使用相同二进制文件) kill -USR2 $(cat /var/run/nginx.pid) # 2. 关闭旧工作进程 kill -WINCH $(cat /var/run/nginx.pid.oldbin) # 3. 确认无误后,关闭旧主进程 kill -QUIT $(cat /var/run/nginx.pid.oldbin)
Nginx日志切割:
日志切割是线上很常见的操作,能够控制单个日志文件的大小,便于对日志进行管理
6.把该脚本的执行,加入crontab 每天0点自动执行
crontab -e #打开定时任务
分 时 日 月 周 用绝对路径bin/bash解释器 运行脚本
0 0 * * * /bin/bash /scripts/cut_nginx_log.sh