用户工具

站点工具


docs:ingress:nginx:1_nginx_signal_manager

http://nginx.org/en/docs/control.html Nginx信号管理实现
http://nginx.org/en/docs/control.html

  1. Nginx的优雅重启配置
  2. Nginx的日志切割命令

Nginx的信号管理命令为:kill -参数 Nginx进程号 例如:kill -HUP $(cat /usr/local/nginx/logs/nginx.pid) 官方参考地址

参数 解释
TERM, INT Quick shutdown
QUIT Graceful shutdown(优雅关闭进程,等请求结束后再关闭)
KILL Halts a stubborn process
HUP Configuration reload,Start the new worker processes with a new configuration,Gracefully shutdown the old worker processes(改变配置文件,平滑重读配置文件)
USR1 Reopen the log files(重读日志,可在日志切割时使用)
USR2 Upgrade Executable on the fly(平滑升级)
WINCH Gracefully shutdown the worker processes(优雅关闭旧的进程)

Nginx的优雅重截配置文件

/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -HUP `cate /usr/local/nginx/logs/nginx.pid`

Nginx的日志切割命令

/usr/local/nginx/sbin/nginx -s reopen
/usr/local/nginx/sbin/nginx -USR1 `cate /usr/local/nginx/logs/nginx.pid`

任务需求:每日凌晨将nginx日志根据日期重命名日志文件进行切割。

昨天时间命令 date -d yesterday +%Y%m%d 切割脚本内容:

#!/bin/bash
# filename nginx_logrotate.sh
# author catsnyne@gmail.com

DATE=$(date -d yesterday +%Y%m%d)
LOG_PATH=/usr/local/nginx/logs/
LOG_NAME=access.log
BASE_PATH=/var/log/
SAVE_LOG_NAME=${DATE}.${LOG_NAME}

mv ${LOG_PATH}${LOG_NAME} ${BASE_PATH}${SAVE_LOG_NAME}

kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
定时执行任务:

1 * * * * /usr/bin/crontab /root/curlog.sh >/dev/null 2>&1

花点时间了解一下:电饭煲做卤鸡

docs/ingress/nginx/1_nginx_signal_manager.txt · 最后更改: 2020/09/25 21:49 (modify by Amos)