nginx平滑升级,信号使用,分割日志

目录

信号

分割日志

nginx平滑升级


信号

kill -l  看信号大全
nginx -h   中可以看到的信号较少
s signal     : send signal to a master process: stop, quit, reopen, reload

可以使用man手册来查看详细的信号 如果没安装,去源码包里找到man文件
man   路径/nginx.8      不加路径打不开man帮助
stop          SIGTERM        直接停止
quit           SIGQUIT        优雅的退出:有人在访问不会结束进程
reopen       SIGUSR1        分割日志
reload       SIGHUP         重新加载配置文件
                 SIGHUP           Reload configuration, start the new worker process with a new configuration, and gracefully shut down old worker processes.
             SIGQUIT          Shut down gracefully.  优雅的关闭:有人在访问不会结束进程
             SIGUSR1          Reopen log files.       重新分割日志
             SIGUSR2          Upgrade the nginx executable on the fly.  运行中升级
             SIGWINCH         Shut down worker processes gracefully.    优雅的关闭worker进程,work进程负责处理请求,还有请求不会关闭
             
             
             
帮助: -? -h
使用指定的配置文件: -c
指定配置指令:-g
指定运行目录:-p
测试配置文件是否有语法错误:-t -T
打印nginx的版本信息、编译信息等:-v -V
发送信号: -s 示例: nginx -s reload

nginx -v 显示版本

nginx -V

显示编译详细情况 模块等信息

分割日志

编译安装的日志文件在 /apps/nginx/logs/

cd /apps/nginx/logs/

access.log 为成功日志 error.log 为失败日志

将access.log重命名为,access.log.bak 

nginx -s reopen 重新生成日志 也可以使用 kill -USR1 进程号    使用主进程号

错误日志同理

可以编写分割日志脚本,加入计划任务,定时执行,实在不会,找chatGPT。

nginx平滑升级

先下载升级所用的安装包,我这边使用的1.20.2的安装包

wget https://nginx.org/download/nginx-1.20.2.tar.gz 

解压压缩包

进入 nginx.1.20.2

cd nginx1.20.2

########################################################################
这时需要重新编译安装   ./configure   安装参数基本一致  这时可以使用 nginx -V  查看
########################################################################

./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module 

########################################################################
如果 有新模块在后添加即可
########################################################################

make  ###########注意不要执行  make install

cd 到objs

cd objs

mv /apps/nginx/sbin/nginx   /apps/nginx/sbin/nginx.bak

将低版本的nginx主程序改名 备份

cp objs/nginx /apps/nginx/sbin/

将新版本 拷入进去

kill -USR2  主进程号

在看一下进程号

优雅的退出老进程

kill -WINCH `cat /apps/nginx/logs/nginx.pid.oldbin`

查看版本号

第一个进程号是老进程,等没有人访问的时候优雅的退出

kill -quit 老进程号

也可以先留着老进程 

如果新的有问题,进行回滚 

kill -HUP `cat /apps/nginx/logs/nginx.pid.oldbin`

#唤起老的进程

或者 直接停掉服务

在重启服务,就回退到1.18了

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值