xuyaxiu 发表于 2018-11-12 12:00:28

nginx的平滑升级方法:

  最简单的nginx的平滑升级方法:
  1 找到nginx的执行文件的路径
# ps auxf|grep nginx记下nginx的master进程 pid(我这里是2752 )  2 查看当前nginx的版本及编译参数:
# nginx -V  nginx version: nginx/1.8.0
  built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
  built with OpenSSL 1.0.1e-fips 11 Feb 2013
  TLS SNI support enabled
  configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-google_perftools_module
  3 下载tar xf nginx-1.11.5.tar.gz
# tar xf tar xf nginx-1.11.5.tar.gz && cd tar xf nginx-1.11.5  
# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-google_perftools_module
  
# make注意这里不要执行make install操作。
  4 移走原先的nginx二进制文件
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old  5 替换新编译的 文件到nginx的sbin目录下
# cp objs/nginx /usr/local/nginx/sbin/  6 执行升级命令(在解压出的新版本的nginx源文件目录下执行)
# make upgrade  /usr/local/nginx/sbin/nginx -t
  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
  sleep 1
  test -f /usr/local/nginx/logs/nginx.pid.oldbin
  kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  7 检查升级是否完成
# ps aux|grep nginx 可以看到nginx的master进程 pid变了。  
# /usr/local/nginx/sbin/nginx -V 也可以看到nginx的版本升级完成了
  
# ps aux|grep nginx还可以看到老的nginx进程在逐步shutdown。


页: [1]
查看完整版本: nginx的平滑升级方法: