linux平滑升级nginx,Nginx的平滑重启和平滑升级,nginx
Nginx的平滑重啟和平滑升級(jí),nginx
Nginx的平滑重啟
如果改變了Nginx的配置文件(nginx.conf),想重啟Nginx,可以發(fā)送系統(tǒng)信號(hào)給Nginx主進(jìn)程的方式來(lái)進(jìn)行。不過(guò),在重啟之前,要確認(rèn)Nginx配置文件的語(yǔ)法是正確的,可通過(guò)如下命令測(cè)試配置文件是否正確:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
如果配置文件不正確,屏幕會(huì)提示配置文件的第幾行出錯(cuò):
nginx:[emerg] invalid number of arguments in "autoindex" directive in /usr/local/nginx/conf/nginx.conf:29
nginx:configuration file /usr/local/nginx/conf/nginx.conf test failed
如果配置文件正確,屏幕將提示以下兩行信息:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
這時(shí)候,就可以平滑重啟了:
對(duì)于Nginx 0.8.x之前的版本?kill -HUP `cat /usr/local/nginx/nginx.pid`
對(duì)于Nginx 0.8.x之后的版本?/usr/local/webserver/nginx/sbin/nginx -s reload
Nginx的平滑升級(jí)
當(dāng)需要將正運(yùn)行的Nginx升級(jí),可以在不中斷服務(wù)的情況下進(jìn)行,具體步驟如下:
1、使用新的可執(zhí)行程序替換舊的可執(zhí)行程序。下載新的Nginx,重新編譯到舊版本的安裝路徑中。重編譯之前,先備份一下舊的可執(zhí)行文件。
2、執(zhí)行以下指令,他將存儲(chǔ)有舊版本主進(jìn)程ID的文件重命名為.oldbin:
kill -USR2 舊版本的Nginx主進(jìn)程號(hào)
一般情況下是這樣的:kill -USR2 `cat /usr/local/nginx/nginx.pid`
可以用 ls /usr/local/nginx/logs來(lái)查看是否改名
3、執(zhí)行新版本的Nginx可執(zhí)行程序。
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx
4、此時(shí)新舊版本的Nginx會(huì)同時(shí)運(yùn)行,共同處理請(qǐng)求。要逐步停止舊版本的Nginx,必須發(fā)送WINCH信號(hào)給舊的主進(jìn)程。然后,他的工作進(jìn)程將從容關(guān)閉。
kill -WINCH 舊版本的Nginx主進(jìn)程號(hào)
5、一段時(shí)間后,舊的工作進(jìn)程處理完了所有的請(qǐng)求后退出,僅由新的進(jìn)程來(lái)處理輸入請(qǐng)求了??捎孟旅娴拿畈榭?#xff1a;
ps -ef | grep nginx
6、現(xiàn)在可以決定使用新版本還是恢復(fù)到舊版本:
kill -HUP 舊的主進(jìn)程號(hào) :Nginx在不重載配置文件的情況下啟動(dòng)他的工作進(jìn)程
kill -QUIT 新的主進(jìn)程號(hào) ?:從容關(guān)閉其工作進(jìn)程
kill -TERM 新的主進(jìn)程號(hào) :強(qiáng)制退出
kill 新的主進(jìn)程號(hào)或舊的主進(jìn)程號(hào):如果因?yàn)槟承┰蛐碌墓ぷ鬟M(jìn)程不能退出,則向其發(fā)送kill信號(hào)
新的主進(jìn)程退出后,舊的主進(jìn)程會(huì)移除.oldbin后綴,恢復(fù)為他的.pid文件,這樣,一切就都恢復(fù)為升級(jí)之前了。
如果嘗試升級(jí)成功,而自己又希望保留新版本時(shí),可發(fā)送QUIT信號(hào)給舊的主進(jìn)程,使其退出而只留下新的進(jìn)程運(yùn)行:kill -QUIT 舊主進(jìn)程號(hào)
總結(jié)
以上是生活随笔為你收集整理的linux平滑升级nginx,Nginx的平滑重启和平滑升级,nginx的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux勒索病毒名称,Linux 也有
- 下一篇: 基于pygtk的linux有道词典