美文网首页
nginx-平滑升级

nginx-平滑升级

作者: G__yuan | 来源:发表于2020-01-19 15:45 被阅读0次

    1.下载高版本nginx,然后将其解压,然后cd进入解压后目录(本人第一次安装的版本是1.16.1)

    2.执行指令

    $: ./configure

    $:make       #不能执行  make   install  千万记住

    $:cd objs    此目录下,有高版本的nginx,将此目录下的nginx拷贝到之前nginx安装目录/usr/local/nginx/sbin下面,替换之前之前的nginx,替换之前将/usr/local/nginx/sbin下面原先的nginx进行备份保存。

    $:cp -rfp objs/nginx   /usr/local/nginx/sbin   执行强制覆盖

    $:/usr/local/nginx/sbin/nginx -t    测试一下新复制过来文件生效情况:

    3.执行信号平滑升级

    $: kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`  (` 这个里面就是填一个nginx版本的进程号即可` )   更新配置文件,给nginx发送USR信号,nginx会将logs/nginx.pid文件重命名为nginx.pid.oldbin ,然后用新的可执行文件启动一个新的nginx主进程和对应的工作进程,并新建一个新的nginx.pid保存新的主进程号。

    logs下文件的改变 新旧进程一起有,旧进程为:24283

    4. 将旧的进程优雅的干掉

    $:kill -WINCH 旧的主进程号  旧的主进程号收到WINCH信号后,将旧进程号管理的旧工作进程优雅的关闭,即一段时间后旧的工作进程全部关闭,只有新的工作进程在处理请求连接,这是,依然可以恢复到旧的进程服务,因为旧进程的监听socket还为停止

    执行kill -WINCH 旧的主进程号的旧的工作进程将没了 但是nginx还是可以继续访问的

    5.此时如果想停止升级,回滚到旧的nginx,不再进行升级时的操作。

    $: kill -HUP  旧主进程号      给旧的主进程号发送HUP命令,此时nginx不重新读取配置文件的情况下重新启动旧主进程的工作进程。

    $: kill -QUIT 新主进程号     然后再将新的主进程优雅的关闭。此时旧回滚到之前的旧的nginx了。

    此时就是执行 HUP命令后,旧的工作进程恢复后的进程列表

    6.如果不回退的话,执行WINCH命令之后,执行下面的操作

    $:kill -QUIT 旧的主进程号     给旧的主进程发送QUIT信号后,旧的主进程退出,并移除logs/nginx.pid.oldbin 文件,nginx的升级完成。

    7.查看版本是否已经平滑升级

    $:./nginx -v

    已经平滑升级

    相关文章

      网友评论

          本文标题:nginx-平滑升级

          本文链接:https://www.haomeiwen.com/subject/vemrzctx.html