热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

nginx重新整理——————热部署和日志切割[三]

前言简单演示热部署和日志切割。正文什么是热部署了,我们前文也说过了一个编译后的nginx二进制。热部署就是无需停止现有的nginx,替换正在运行的nginx。步骤:复制nginx二

前言

简单演示热部署和日志切割。


正文

什么是热部署了,我们前文也说过了一个编译后的nginx 二进制。

热部署就是无需停止现有的nginx,替换正在运行的nginx。

步骤:



  1. 复制nginx 二进制替换掉原先的nginx文件。



  2. kill -USR2 13195 给nginx 发送信号



这里出现了另外一个master。

3.发送WINCH信号给旧的master进程,让旧的master进程优雅的退出

kill -WINCH cat /opt/nginx/logs/nginx.pid.oldbin

退出woker。

4.此时如果觉得nginx服务一切正常,就可以干掉旧的master主进程了

kill -9 cat /opt/nginx/logs/nginx.pid.oldbin

退出master



  1. 如果替换有问题呢?那么怎么办?

    nginx 回滚:

cp nginx.old nginx

打开旧的worker进程号:

kill -HUP 4810
``
其中 pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
关闭新的worker:

kill -WINCH 16940


下面介绍一下nginx 的日志切割。

LOGS_PATH = /usr/local/optnresty/nginx/logs/histoty

CUR_LOGS_PATH = /usr/local/openresty/nginx/logs

YESTEDAY = $(date -d "yesterday" +%Y-%m-%d)

mv ${CUR_LOGS_PATH }/xxx_access.log ${LOGS_PATH }/xxx_access_${YESTEDAY}.log

mv ${CUR_LOGS_PATH }/xxx_error.log ${LOGS_PATH }/xxx_error_${YESTEDAY}.log

kill -USR1 $(cat /usr/local/openresty/nginx/logs/nginx.pid)


这样就可以了,其实后面那个就是nginx -s reopen,从新打开日志。
然后把这个cron 定时任务,比如每天0:00,这样就可以了。
### 结
下一节静态服务和反向代理。


推荐阅读
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有