在nginx的早期版本,nginx重啟需要透過kill命令向nginx傳送訊號來實現nginx的重啟。但是,現在,nginx增加了-s選項,實現nginx的停止,重新載入功能。
1.如果是平滑的重啟nginx,可以用./nginx-sreload命令實現nginx的平滑重啟。
2.如果是非平滑重啟,則可以先停止nginx,然後再啟動:./nginx-sstop&&./nginx當我們修改nginx配置後,希望重啟nginx以便讓nginx生效,此時為了保證nginx在重啟階段還能夠提供正常的服務,一般採用平滑重啟的方式(reload)重啟nginx。此時,nginx會載入新的配置,然後fork出新的worker程序。同時,master程序會向老的worker程序傳送訊號,告訴老的worker程序當前的情況。老的worker程序受到master程序的訊號後,如果當時沒有處理請求則會退出,如果正在處理請求,則老的worker程序會處理完請求然後退出。nginx就是透過這種方式去reload新的配置,從而使得在重啟的過程中,仍然可以提供服務。
在nginx的早期版本,nginx重啟需要透過kill命令向nginx傳送訊號來實現nginx的重啟。但是,現在,nginx增加了-s選項,實現nginx的停止,重新載入功能。
1.如果是平滑的重啟nginx,可以用./nginx-sreload命令實現nginx的平滑重啟。
2.如果是非平滑重啟,則可以先停止nginx,然後再啟動:./nginx-sstop&&./nginx當我們修改nginx配置後,希望重啟nginx以便讓nginx生效,此時為了保證nginx在重啟階段還能夠提供正常的服務,一般採用平滑重啟的方式(reload)重啟nginx。此時,nginx會載入新的配置,然後fork出新的worker程序。同時,master程序會向老的worker程序傳送訊號,告訴老的worker程序當前的情況。老的worker程序受到master程序的訊號後,如果當時沒有處理請求則會退出,如果正在處理請求,則老的worker程序會處理完請求然後退出。nginx就是透過這種方式去reload新的配置,從而使得在重啟的過程中,仍然可以提供服務。