Nginx平滑升級

Nginx-1.6.2升級到Nginx-1.7.2

  • 查看目前nginx的相關配置
# /usr/local/nginx/sbin/nginx -V
nginx version: TWS
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  • 下載需要更新的Nginx源碼包
    wget -c http://nginx.org/download/nginx-1.7.2.tar.gz

  • 解壓并編譯
    cd /usr/local/src/
    tar zxvf nginx-1.7.2.tar.gz
    配置的內容與原版本保持一致
    ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    配置完成后只需要執行make,切忌不可執行make install

  • 備份舊版本的nginx
    cd /usr/local/nginx/sbin/
    mv nginx nginx.old

  • 同步新版本的nginx
    cp /usr/local/src/nginx-1.7.2/objs/nginx /usr/local/nginx/sbin/

  • 測試新版本配置
    /usr/local/nginx/sbin/nginx –t

  • 平滑重啟升級Nginx
    kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

舊版本Nginx的pid變為oldbin,這是舊版本和新版本的nginx同時運行,過一段時間等就nginx處理完用戶請求

  • 從容關閉舊版本的Nginx進程
    kill -WINCH `cat /usr/local/nginx/log/nginx.oldbin`

  • 決定是否升級到新版的nginx
    kill –HUP `cat /usr/local/nginx/log/nginx.oldbin`##nginx在不重載配置文件啟動工作進程
    kill –QUIT `cat /usr/local/nginx/log/nginx.oldbin` ##關閉舊版nginx
    驗證nginx是否升級成功

  • 成功升級
    /usr/local/nginx/sbin/nginx –V ###顯示新版本則升級成功

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容