nginx平滑升级步骤+keepalive

1.修改dns解析,将升级的lb拿出

2.下载nginx并编译

wget http://nginx.org/download/nginx-1.2.8.tar.gz

用原来的参数编译1.2.8

./configure --user=www \

--group=www \

--prefix=/home/nginx \

--with-http_stub_status_module \

--with-http_realip_module

make

不进行make install

备份原有nginx

mv  /home/nginx/sbin/nginx /home/nginx/sbin/nginx.bak

cp当前目录下的obsj/nginx 到原有nginx目录的sbin

检查是否升级为1.2.8

/home/nginx/sbin/nginx -V

nginx version: nginx/1.2.8
3.修改配置文件,添加keepalive

在upstream 段中添加

keepalive 32

在server段添加

proxy_http_version 1.1;

proxy_set_header Connection "";

保存文件,

通过nginx -t -c参数检查配置文件

/home/nginx/bin/nginx -t -c /home/nginx/conf/nginx.conf

4.进行升级操作

  
  
  
  
  1. kill -USR2 `cat /home/nginx/logs/nginx.pid`

#给原来的nginx主进程发送平滑升级信号

查看/home/nginx/logs/ 生成了一个nginx.pid.oldbin文件,证明nginx已经启用了新的主进程

  
  
  
  
  1. kill -WINCH `cat /home/nginx/logs/nginx.pid.oldbin`

#给原nginx主进程发送从容关闭信号

过一段时间查看nginx进程情况,可以发现2个nginx主进程在运行,旧的工作进程处理了所有已连接的请求后退出,就仅由新的工作进程来处理输入的请求了

ps -ef | grep nginx

用 QUIT 信号关闭旧的 nginx 主进程

  
  
  
  
  1. kill -QUIT `cat /home/nginx/logs/nginx.pid.oldbin`

ps -ef | grep nginx

在执行quit之前如果发现问题,可以恢复旧的服务器:

发送 HUP 信号给旧的主进程 - 它将在不重载配置文件的情况下启动它的工作进程

发送 QUIT 信号给新的主进程,要求其从容关闭其工作进程

发送 TERM 信号给新的主进程,迫使其退出

如果因为某些原因新的工作进程不能退出,向其发送 KILL 信号

你可能感兴趣的:(nginx,linux)