【nginx】服务的信号控制

1. 说明
  • 1.Nginx 的信号控制是其管理服务的重要机制,通过向主进程发送特定信号,可以实现对 Nginx 的平滑重启、重新加载配置、关闭服务等操作,而无需停止服务或中断用户请求。
2. 常用信号及作用
信号发送方式作用
TERMINTkill -TERM <PID>kill -INT <PID>立即关闭 Nginx 服务,所有工作进程和主进程将直接退出,未完成的请求会被中断。
QUITkill -QUIT <PID>优雅关闭 Nginx 服务,主进程会等待所有工作进程完成当前请求后再退出。
HUPkill -HUP <PID>重新加载配置文件,主进程会启动新的工作进程,并平滑关闭旧的工作进程。
USR1kill -USR1 <PID>重新打开日志文件,用于日志切割,不会中断服务。
USR2kill -USR2 <PID>平滑升级 Nginx,启动新的主进程和新的工作进程,旧进程继续处理剩余请求。
WINCHkill -WINCH <PID>优雅关闭工作进程,通常与 USR2 配合使用,用于平滑升级时关闭旧工作进程。
3. 信号控制的具体操作
3.1 获取 Nginx 主进程 PID
  • 1.Nginx 主进程的 PID 通常存储在配置文件中指定的 PID 文件中,默认路径为 /usr/local/nginx/logs/nginx.pid 或 /var/run/nginx.pid。
  • 2.可以通过以下命令获取:cat /usr/local/nginx/logs/nginx.pid
3.2 发送信号
  • 1.使用 kill 命令向主进程发送信号。
  • 2.重新加载配置文件:kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
  • 3.优雅关闭服务:kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid)
  • 4.重新打开日志文件(用于日志切割):kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
4. 应用场景
4.1 重新加载配置文件
  • 1.当修改了 Nginx 配置文件(如 nginx.conf)后,无需停止服务即可使新配置生效
  • 2.kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
  • 3.nginx -s reload
4.2 日志切割
  • 1.为了防止日志文件过大,可以定期切割日志。
  • 2.重命名当前日志文件:mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.old
  • 3.向 Nginx 主进程发送 USR1 信号,重新打开日志文件:kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
  • 4.压缩或归档旧日志文件:gzip /usr/local/nginx/logs/access.log.old
5. 平滑升级 Nginx
  • 1.当需要升级 Nginx 时,可以使用 USR2 和 WINCH 信号实现平滑升级:
  • 2.启动新的 Nginx 二进制文件:/path/to/new/nginx -c /path/to/nginx.conf
  • 3.新进程会作为主进程运行,旧主进程的 PID 会被重命名为 .oldbin。
  • 4.向旧主进程发送 USR2 信号,启动新的工作进程:kill -USR2 $(cat /var/run/nginx.pid)
  • 5.向旧主进程发送 WINCH 信号,优雅关闭旧工作进程:kill -WINCH $(cat /var/run/nginx.pid.oldbin)
  • 6.确认新进程正常运行后,关闭旧主进程:kill -QUIT $(cat /var/run/nginx.pid.oldbin)
6. 注意事项
  • 1.信号发送对象:始终向 Nginx 主进程发送信号,而不是工作进程。
  • 2.日志文件权限:确保 Nginx 有权限写入日志文件,否则 USR1 信号可能无效。
  • 3.配置文件语法检查:在重新加载配置文件前,建议先检查语法是否正确:nginx -t
  • 4.平滑升级风险:在升级过程中,确保新旧版本的配置文件兼容,避免服务中断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值