Nginx 热部署和日志切割,你学会了吗?( 二 )


如果要退出保留的 master 进程,可以通过 kill -QUIT 命令来完成:
# 发送 QUIT 信号到旧的主进程,它会退出保留的 master 进程kill -QUIT 1752执行完后,1752 进程退出,通过 netstat lntup 可以看到 80 端口已经被 4391 进程监听了(新版本 nginx 的进程) 。
到此为止,我们就完成了 nginx 的热部署 。
日志切割为了避免日志文件过大不方便查看,因此需要对日志切割 。首先将原先的日志进行备份:
# 备份原日志
mv error.log old_error.log
查看日志大小:
[root@wupx logs]# ll
total 20
-rw-r--r-- 1 root root 6789 Nov 6 22:28 access.log
-rw-r--r-- 1 root root 5 Nov 6 22:16 nginx.pid
-rw-r--r-- 1 root root 7831 Nov 6 22:28 old_error.log
接下来进行日志切割:
# 日志切割/usr/local/nginx/sbin/nginx -s reopen再次查看:
[root@wupx logs]# lltotal 24-rw-r--r-- 1 nobody root 6789 Nov 6 22:28 access.log-rw-r--r-- 1 nobody root 60 Nov 6 22:30 error.log-rw-r--r-- 1 root root 5 Nov 6 22:16 nginx.pid-rw-r--r-- 1 root root 7831 Nov 6 22:28 old_error.log经过上面的操作,我们就完成了日志的切割,以上操作只是为了了解日志切割的操作流程,不建议直接生产这么使用 。推荐先写成一个 shell 脚本,通过 shell 脚本去定时执行 。
示例脚本:
#!/bin/bashLOGS_PATH=/usr/local/nginx/logs/historyCUR_LOGS_PATH=/usr/local/nginx/logsYESTERDAY=$(date -d "yesterday" +%Y-%m-%d)mv ${CUR_LOGS_PATH}/access.log ${LOGS_PATH}/old_access_${YESTERDAY}.logmv ${CUR_LOGS_PATH}/error.log ${LOGS_PATH}/old_error_${YESTERDAY}.log## 向 NGINX 主进程发送 USR1 信号 。USR1 信号是重新打开日志文件kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)总结这篇文章主要介绍了 Nginx 命令行相关知识,并介绍了重载配置文件、Nginx 热部署、日志切割等操作,还是需要多实践操作,实践出真知 。




推荐阅读