nginx平滑升級
目標: 舊版本 升級 新版本nginx
# wget nginx.tgz && tar zxvf nginx.tgz
# cd nginx
# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=/opt/tools/openssl-1.0.2l/ --with-pcre-jit --with-ld-opt=-ljemalloc --with-debug --add-module=/opt/tools/nginx-module-vts-master/ --add-module=/opt/tools/nginx_upstream_check_module-master/ --add-module=/opt/tools/ngx_cache_purge-2.3/
# make
#mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.backup
# mv objs/nginx /usr/local/nginx/sbin/nginx
# kill -USR2 `cat /var/run/nginx.pid` 將舊版本Nginx的主進程將重命名為nginx.pid.oldbin,並執行新版本的Nginx可執行程序,啟動新的主進程和新的工作進程,再次生成新的nginx.pid文件
# kill -WINCH `cat /var/run/nginx.pid.oldbin` 平緩停止worker process(此步驟可省略)
# kill -QUIT `cat /var/run/nginx.pid.oldbin` 平緩停止舊的Nginx服務進程
補充
Nginx支持的信號
TERM,INT——快速關閉
QUIT 平滑關閉
HUP 平滑重啟,重新加載配置文件
USR1 重新打開日志文件
USR2 平滑升級可執行程序
WINCH 平滑關閉工作進程