nginx Binary热更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx Binary热更新相关的知识,希望对你有一定的参考价值。
1、更新Binary
# cp /usr/loca/nginx/sbin/nginx /usr/loca/nginx/sbin/nginxbak //备份 # cp /usr/local/nginx-12.1/sbin/nginx/ /usr/loca/sbin/nginx //跟新新文件
2、给原来的nginx master进程发送USR2信号
# kill -USR2 `cat /var/run/nginx.pid`
2.1此时会生成两个nginx 的master进程及其work进程
# ps aux | grep nginx root 20650 1.0 0.1 1336856 22536 ? S 11:29 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 20655 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20656 0.0 0.3 1378468 54412 ? S 11:29 0:00 nginx: worker process nobody 20657 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20658 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20659 0.0 0.0 1336856 12168 ? S 11:29 0:00 nginx: cache manager process nobody 20660 0.0 0.0 1336856 12048 ? S 11:29 0:00 nginx: cache loader process root 22250 0.0 0.1 1336856 22540 ? S 11:10 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 22251 0.0 0.3 1378272 53356 ? S 11:10 0:00 nginx: worker process nobody 22252 0.0 0.3 1378568 54728 ? S 11:10 0:00 nginx: worker process nobody 22254 0.0 0.3 1378468 54416 ? S 11:10 0:00 nginx: worker process nobody 22255 0.0 0.3 1378272 53356 ? S 11:10 0:00 nginx: worker process nobody 22256 0.0 0.0 1336856 12172 ? S 11:10 0:00 nginx: cache manager process
3、给原来的nginx 的master进程发送WINCH信号,执行步骤二之后,老的nginx进程会在/var/run/生成一个旧的pid文件,为:/var/run/nginx.pid.oldbin
# kill -WINCH `cat /var/run/nginx.pid.oldbin`
3.1此时旧nginx的work进行已不存在
# ps aux | grep nginx hujingfu 1324 0.0 0.0 103304 848 pts/101 S+ 11:30 0:00 grep nginx root 20650 0.2 0.1 1336856 22536 ? S 11:29 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 20655 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20656 0.0 0.3 1378468 54412 ? S 11:29 0:00 nginx: worker process nobody 20657 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20658 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20659 0.0 0.0 1336856 12168 ? S 11:29 0:00 nginx: cache manager process nobody 20660 0.0 0.0 1336856 12048 ? S 11:29 0:00 nginx: cache loader process root 22250 0.0 0.1 1336856 22540 ? S 11:10 0:00 nginx: master process /usr/local/nginx/sbin/nginx
4、给旧nginx 的master进行发送QUIT信号,让其推出
# kill -QUIT `cat /var/run/nginx.pid.oldbin`
4.1 此时旧的nginx所有进程都已推出,新的nginx已经生效,nginx 热跟新Binary 完成
# ps aux | grep nginx hujingfu 1502 0.0 0.0 103304 844 pts/101 S+ 11:30 0:00 grep nginx root 20650 0.1 0.1 1336856 22536 ? S 11:29 0:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 20655 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20656 0.0 0.3 1378468 54412 ? S 11:29 0:00 nginx: worker process nobody 20657 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20658 0.0 0.3 1378272 53352 ? S 11:29 0:00 nginx: worker process nobody 20659 0.0 0.0 1336856 12168 ? S 11:29 0:00 nginx: cache manager process nobody 20660 0.0 0.0 1336856 12048 ? S 11:29 0:00 nginx: cache loader process
参考链接:
http://www.cnblogs.com/sayou/p/3711918.html
http://blog.csdn.net/huzelin1008/article/details/43193991
本文出自 “马行空” 博客,请务必保留此出处http://maxingkong.blog.51cto.com/6184921/1956387
以上是关于nginx Binary热更新的主要内容,如果未能解决你的问题,请参考以下文章
nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)(代码片
LeetCode-面试算法经典-Java实现106-Construct Binary Tree from Inorder and Postorder Traversal(构造二叉树II)(示例(代码片