高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
来源:互联网 发布:手机淘宝价格字体 编辑:程序博客网 时间:2024/05/17 01:20
1、概述(可以直接跳过看第2部分)
Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。
(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
(3)新进程接受新请求。
(4)老进程处理完所有请求,关闭所有连接后,停止。
这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx,一种是确实要升级Nginx的版本,另一种是要为Nginx添加新的模块。
2. 升级过程
具体的操作也很简单,如下:
(0)查看当前版本
在存放Nginx的可执行文件的目录下输入:
./nginx -V
(1)下载新的Nginx版本并编译。
wget nginx-1.0.11.tar.gztar zxvf nginx-1.0.11.tar.gzcd nginx-1.0.11./configure --add-module=/customized_module_0 --add-module=/customized_module_1make
注意不要进行make install
(2)备份老版本的可执行文件
cd /usr/local/nginx/sbinsudo cp nginx nginx.old
(3)修改配置文件
如果有必要的话,进行配置文件的修改。
(4)拷贝新的可执行文件
sudo cp /home/michael/tmp/nginx-1.0.11/objs/nginx /usr/local/nginx/sbin/
(5)升级
cd /home/michael/tmp/nginx-1.0.11make upgrade
(6)清理多余文件
rm -rf /home/michael/tmp/nginx-1.0.11
(7)查看Nginx版本
cd /usr/local/nginx/sbin./nginx -V
3、观察进程变化
在我的机器上可以观察到,我配置的是10个worker进程,启动后观察到:
root 6241 10419 0 10:51 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 6242 6241 2 10:51 ? 00:00:00 nginx: worker process nobody 6243 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6244 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6245 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6246 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6247 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6248 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6249 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6250 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6251 6241 1 10:51 ? 00:00:00 nginx: worker process nobody 6252 6241 0 10:51 ? 00:00:00 nginx: cache manager processnobody 6253 6241 0 10:51 ? 00:00:00 nginx: cache loader processluming 6310 25051 0 10:51 pts/1 00:00:00 grep --color=auto nginxnobody 7995 10419 0 Jan12 ? 00:20:37 nginx: worker process is shutting downnobody 7996 10419 0 Jan12 ? 00:20:11 nginx: worker process is shutting downnobody 7998 10419 0 Jan12 ? 00:20:04 nginx: worker process is shutting downnobody 8003 10419 0 Jan12 ? 00:20:12 nginx: worker process is shutting downroot 10419 1 0 Jan08 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
可见新的进程有1个master和10个worker,另外还有1个老的master(可以从时间上看出)和4个worker(其他6个老的worker已经处理完所有连接而shutdown了)。还有一个loader进程。过几秒种可以看到worker只有两个了:
root 6241 10419 0 10:51 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 6242 6241 1 10:51 ? 00:00:00 nginx: worker process nobody 6243 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6244 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6245 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6246 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6247 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6248 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6249 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6250 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6251 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6252 6241 0 10:51 ? 00:00:00 nginx: cache manager processnobody 6253 6241 0 10:51 ? 00:00:00 nginx: cache loader processluming 6430 25051 0 10:51 pts/1 00:00:00 grep --color=auto nginxnobody 7996 10419 0 Jan12 ? 00:20:11 nginx: worker process is shutting downnobody 8003 10419 0 Jan12 ? 00:20:12 nginx: worker process is shutting downroot 10419 1 0 Jan08 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
再过一小会儿观察:
root 6241 1 0 10:51 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 6242 6241 0 10:51 ? 00:00:01 nginx: worker process nobody 6243 6241 0 10:51 ? 00:00:01 nginx: worker process nobody 6244 6241 0 10:51 ? 00:00:01 nginx: worker process nobody 6245 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6246 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6247 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6248 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6249 6241 0 10:51 ? 00:00:00 nginx: worker process nobody 6250 6241 0 10:51 ? 00:00:01 nginx: worker process nobody 6251 6241 0 10:51 ? 00:00:02 nginx: worker process nobody 6252 6241 0 10:51 ? 00:00:00 nginx: cache manager processluming 8680 25051 0 10:56 pts/1 00:00:00 grep --color=auto nginx
Congratulations! You can upgrade your Nginx server gracefully.
-
- 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
- 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
- 高性能Web服务器Nginx的配置与部署研究
- 高性能Web服务器Nginx的配置与部署研究(5)Nginx配置符号
- 高性能Web服务器Nginx的配置与部署研究(5)Nginx配置符号
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
- 高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令
- 高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令
- 高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置、部署与“Hello World”
- Nginx - 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- 高性能Web服务器Nginx的配置与部署研究(16)小议
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- Nginx的配置与部署(14)平滑升级你的Nginx
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx的请求处理机制
- 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
- Android获取并设置Activity的亮度
- 每天一点点-EXT源码分析之四
- HTTP
- 网页特殊字符编码
- JSON
- 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
- 如何让EPS嵌入字体
- SOAP
- 计算一段程序执行的时间
- Java-UrlRewrite中文官方文档
- 模板方法模式
- Http传输
- linux下面搜索含有某字符串的文件
- python 文件和路径操作函数小结