nginx的启动、停止、平滑重启
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
一、Nginx 的啟動
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf? ? 參數(shù) "-c" 指定了配置文件的路徑,如果不加 "-c" 參數(shù),Nginx 會默認加載其安裝目錄的 conf 子目錄中的 nginx.conf 文件,在本例中即:/usr/local/nginx/conf/nginx.conf。
?
二、Nginx 的停止
?
可以通過 ps 命令來查找 Nginx 的主進程號:
ps -ef|grep nginx從圖中可以看到,1 個 Nginx 進程的備注信息為 “master process”,表示它為主進程,另外的 2 個進程的備注信息為 “worker process”,表示它們?yōu)樽舆M程。3781為主進程號。
如果在 nginx.conf 配置文件中指定了 pid 文件存放的路徑 (例如:/usr/local/webserver/nginx/nginx.pid;),該文件中存放的就是 Nginx 當前的進程號。如果沒有指定 pid 文件存放的路徑,nginx.pid 文件默認存放在 Nginx 安裝目錄的 logs 目錄下。所以,我們可以直接通過以下命令來完成命令來完成停止,省下尋找 Nginx 主進程號的步驟:
kill -信號類型 `cat /usr/local/webserver/nginx/nginx.pid`(1) 從容停止 Nginx
kill -QUIT Nginx主進程號或
kill -QUIT `cat /usr/local/webserver/nginx/nginx.pid`?
(2) 快速停止 Nginx
kill -TERM Nginx主進程號 kill -TERM?`cat /usr/local/webserver/nginx/nginx.pid`或
kill -INT Nginx主進程號 kill -INT?`cat /usr/local/webserver/nginx/nginx.pid`?
(3) 強制停止所有 Nginx 進程
pkill -9 nginx?
三、Nginx 的平滑重啟
? ? 如果改變了 Nginx 的配置文件 (nginx.conf),想要重啟 Nginx ,同樣可以通過發(fā)送系統(tǒng)信號給 Nginx 主進程的方式來進行。不過,重啟之前,要確認 Nginx 配置文件 (nginx.conf) 的語法是正確的,否則 Nginx 將不會加載新的配置文件。通過以下命令可以判斷 Nginx 配置文件是否正確:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf? ? 如果配置文件不正確,屏幕將會提示配置文件的第幾行出錯;
? ? 如果配置文件正確,屏幕將提示以下兩行信息:
? ??
? ? ?這時候,就可以平滑重啟 Nginx 了。
?
kill -HUP Nginx主進程號? ? 或
kill -HUP?`cat /usr/local/webserver/nginx/nginx.pid`?
? ? 當 Nginx 接收到 HUP 信號時,它會嘗試先解析配置文件 (如果指定配置文件,就使用指定的,否則使用默認的),如果成功,就應用新的配置文件 ( 例如,重新打開日志文件或監(jiān)聽的套接字 )。之后, Nginx 運行新的工作進程并從容關閉舊的工作進程。通知工作進程關閉監(jiān)聽套接字,但是繼續(xù)為當前連接的客戶提供服務。所有客戶端的服務完成后,舊的工作進程被關閉。如果新的配置文件應用失敗,Nginx 將繼續(xù)使用舊的配置進行工作。
?
四、Nginx 的信號控制
? ? ? ? 在上一節(jié)中,我們使用了信號來控制 Nginx 停止、平滑重啟,Nginx 支持以下幾種信號:
- TERM,INT 快速關閉;
- QUIT 從容關閉;
- HUP 平滑重啟,重新加載配置文件;
- USR1 重新打開日志文件,在切割日志時用途較大;
- USR2 平滑升級可執(zhí)行程序;
- WINCH 從容關閉工作進程。
?
轉(zhuǎn)載于:https://my.oschina.net/u/923772/blog/707000
總結(jié)
以上是生活随笔為你收集整理的nginx的启动、停止、平滑重启的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ant用途及简单实现
- 下一篇: 汉文博士 0.5.6 正式版发布