nginx重新載入配置 不停服

2022-02-18 15:27:00 字數 1776 閱讀 1769

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 你...