rt,改變配置想讓它生效而不停止服務,如下兩種方式都可以:
1) nginx -t; nginx -s reload
2) nginx -t; kill -hup
nginx -t 檢查nginx配置的語法,操作前都要檢查一下,很重要,發現錯誤可及時修正.
停止操作
停止操作是通過向nginx程序傳送訊號(什麼是訊號請參閱linux文 章)來進行的
步驟1:查詢nginx主程序號
ps -ef | grep nginx
在程序列表裡 面找master程序,它的編號就是主程序號了。
步驟2:傳送訊號
從容停止nginx:
kill -quit 主程序號
快速停止nginx:
kill -term 主程序號
強制停止nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid檔案存放路徑則該檔案存放的就是nginx主程序號,如果沒指定則放在nginx的logs目錄下。有了pid文 件,我們就不用先查詢nginx的主程序號,而直接向nginx傳送訊號了,命令如下:
kill -訊號型別 '/usr/nginx/logs/nginx.pid'
平滑重啟
如果更改了配置就要重啟nginx,要先關閉nginx再開啟?不是的,可以向nginx 傳送訊號,平滑重啟。
平滑重啟命令:
kill -hup 住進稱號或程序號檔案路徑
或者使用
/usr/nginx/sbin/nginx -s reload
注意,修改了配置檔案後最好先檢查一下修改過的配置檔案是否正 確,以免重啟後nginx出現錯誤影響伺服器穩定執行。判斷nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者/usr/nginx/sbin/nginx -t
平滑公升級
如果伺服器正在執行的nginx要進行公升級、新增或刪除模組時,我們需 要停掉伺服器並做相應修改,這樣伺服器就要在一段時間內停止服務,nginx可以在不停機的情況下進行各種公升級動作而不影響伺服器執行。
步驟1:
如 果公升級nginx程式,先用新程式替換舊程式檔案,編譯安裝的話新程式直接編譯到nginx安裝目錄中。
步 驟2:執行命令
kill -usr2 舊版程式的主程序號或程序檔名
此時舊的nginx主程序將會把自己的程序檔案改名為.oldbin,然後執行新版 nginx。新舊nginx會同市執行,共同處理請求。
這時要逐步停止舊版 nginx,輸入命令:
kill -winch 舊版主程序號
慢慢舊的工作程序就都會隨著任務執行完畢而退出,新版的nginx的工作程序會逐漸取代舊版 工作程序。
此 時,我們可以決定使用新版還是恢復到舊版。
不過載配置啟動新/舊工作程序
kill -hup 舊/新版主程序號
從容關閉舊/新程序
kill -quit 舊/新主程序號
如果此時報錯,提示還有程序沒有結束就用下面命令先關閉舊/新工作程序,再關閉主程序號:
kill -term 舊/新工作程序號
這樣下來,如果要恢復到舊版本,只需要上面的幾個步 驟都是操作新版主程序號,如果要用新版本就上面的幾個步驟都操作舊版主程序號就行了。
上面就是nginx的一些基本的操作,希望以後nginx能有更好的方法來處理這些操作, 最好是nginx的命令而不是向nginx程序傳送系統訊號。
Nginx啟動,停止和重新載入配置
nginx配置檔案 nginx及其模組的工作方式是由配置檔案指定,預設情況下配置檔案被命名為nginx.conf並且存放在 usr local nginx conf etc nginx usr local etc nginx nginx命令 要啟動nginx直接執行nginx檔案,啟動後可以使用以下...
window中nginx重新載入配置的異常解決
在window下有時也會用nginx來做一下反向 可能會有如下錯誤資訊 nginx.exe s reload nginx emerg could not build server names hash,you should increase server names hash bucket size...
Supervisor重新載入配置
一 新增好配置檔案後 二 更新新的配置到supervisord vb view plain copy supervisorctl update 三 重新啟動配置中的所有程式 vb view plain copy supervisorctl reload 四 啟動某個程序 program name 你...