Nginx的平滑重启和升级
Nginx的平滑重啟和升級
? ? ? ? ? Nginx平滑重啟
? ? ? ? ??如果修改了Nginx的配置文件(nginx.conf),想要重啟Nginx,同樣通過發送系統信號給Nginx的主進程的方式。
? ? ? ? ??但是,重啟之前,需要確認Nginx配置文件的語法是否正確,否則,Nginx不會加載新的配置文件。
? ? ? ? ??通過以下命令檢查配置文件是否正確
? ? ? ? ??/user/local/webserver/nginx/sbin/nginx –t –c
? ? ? ? ??/user/local/webserver/nginx/conf/nginx.conf
? ? ? ? ??如果配置文件不正確,將會提示配置文件的第幾行出錯
? ? ? ? ??[emerg]:unknowndirective “abc” in /user/local/webserver/nginx/conf/nginx.conf:55
? ? ? ? ??Configuration file/user/local/webserver/nginx/conf/nginx.conf test failed
? ? ? ? ??如果配置文件正確,將提示以下兩行信息
? ? ? ? ??The configurationfile /user/local/webserver/nginx/conf/nginx.conf syntax is ok
? ? ? ? ??Configurationfile /user/local/webserver/nginx/conf/nginx.conf test is successful
? ? ? ? ??此時,就可以平滑重啟Nginx了,如下
? ? ? ? ??Kill –HUP Nginx 主進程號
? ? ? ? ??Kill – HUP‘/user/local/webserver/nginx/logs/nginx.pid’
? ? ? ? ??當Nginx接收到HUP信號之后,它會嘗試解析指定的配置文件,如果可以使用,就應用新的配置文件,否則使用默認的配置文件。
? ? ? ? ??如果解析成功,Nginx重新打開日志文件或監聽的套接字,Nginx運行新的的工作進程,并從容關閉舊的工作進程,通知工作進程監聽套接字,但是,繼續為當前連接的客戶提供服務,所有客戶端的服務完成之后,舊的工作進程將關閉。
? ? ? ? ??如果,新的配置文件應用失敗,Nginx將繼續使用舊的配置進行工作。
? ? ? ? ??Nginx的信號控制
? ? ? ? ??可以使用信號來控制Nginx停止、平滑重啟等等,Nginx支持的信號如下
? ? ? ? ??TERM,INT——快速關閉
? ? ? ? ??QUIT——從容關閉
? ? ? ? ??HUP——平滑重啟,重新加載配置文件
? ? ? ? ??USR1——重新打開日志文件,在切割日志時用途較大
? ? ? ? ??USR2——平滑升級可執行程序
? ? ? ? ??WINCH——從容關閉工作進程
? ? ? ? ??Nginx平滑升級
? ? ? ? ??當需要將正在運行的Nginx升級、添加/刪除服務器模塊時,可以在不間斷服務的情況下,使用新版本、重編譯的Nginx可執行程序替換舊版本的可執行程序。
? ? ? ? ??1、使用心得可執行程序替換舊的可執行程序,對于編譯安
裝的Nginx,可以將新版本編譯安裝到舊版本的Nginx安裝路徑中,替換之前,最好備份一下舊的可執行文件。
? ? ? ? ??2、發送以下命令
? ? ? ? ??Kill –USR2 舊版本的Nginx主進程號
? ? ? ? ??3、舊版本Nginx的主進程將重命名為它的.pid文件為.oldbin,比如,/user/local/webserver/nginx/logs/nginx.pid.oldbin,然后,執行新版本的Nginx可執行程序,一次啟動新的主進程和新的工作進程。
總結
以上是生活随笔為你收集整理的Nginx的平滑重启和升级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx的启动和停止
- 下一篇: Nginx的虚拟主机配置