深圳市中心在哪里最繁華優(yōu)化大師免費(fèi)版
快捷查看指令 ctrl+f 進(jìn)行搜索會(huì)直接定位到需要的知識(shí)點(diǎn)和命令講解(如有不正確的地方歡迎各位小伙伴在評(píng)論區(qū)提意見(jiàn),小編會(huì)及時(shí)修改)
Nginx熱部署
首先來(lái)講一下為什么要進(jìn)行熱部署
nginx 支持熱加載 熱部署 ,在不打斷用戶請(qǐng)求的情況下就可以更新版本
Nginx熱部署的原因主要有以下幾點(diǎn):
- 當(dāng)舊的nginx功能模塊不足以支撐項(xiàng)目使用時(shí),需要加載新的nginx到項(xiàng)目中
- 避免 downtime:傳統(tǒng)的軟件升級(jí)需要停止服務(wù),進(jìn)行升級(jí)后再重新啟動(dòng)服務(wù),這個(gè)過(guò)程會(huì)造成服務(wù)停機(jī),如果在高流量情況下停機(jī),會(huì)影響用戶體驗(yàn)和業(yè)務(wù)收益。
- 提升服務(wù)可用性和穩(wěn)定性:Nginx熱部署可以在不中斷服務(wù)的情況下進(jìn)行升級(jí),可以有效減少服務(wù)宕機(jī)時(shí)間,提高業(yè)務(wù)的可用性和穩(wěn)定性。
- 降低升級(jí)風(fēng)險(xiǎn):熱部署可以快速回滾到舊版本,降低升級(jí)風(fēng)險(xiǎn)。在升級(jí)過(guò)程中,如果出現(xiàn)了問(wèn)題,可以很快地切回到舊版本,避免影響業(yè)務(wù)。
- 提高運(yùn)維效率:熱部署可以自動(dòng)完成升級(jí)操作,減少人工干預(yù),提高運(yùn)維效率。同時(shí),熱部署也可以實(shí)現(xiàn)自動(dòng)化部署和回滾。
Nginx熱部署操作步驟
本次測(cè)試將2.3.1版本的Nginx更新為2.4.1版本
- 在舊nginx開(kāi)啟狀態(tài)下,修改舊nginx的sbin下的命令名
[root@localhost sbin]# mv nginx nginx.old
- 重新編譯不安裝一個(gè)新的nginx,位置與舊的一致
(安裝nginx詳情可查看Centos7安裝配置nginx)
[root@localhost tengine-2.4.1]# ./configure --prefix=/tmp/tngx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio[root@localhost tengine-2.4.1]# make
- 將tengine-2.4.1包下的objs/nginx復(fù)制到舊nginx包下
cp tengine-2.4.1/objs/nginx /tmp/tngx/sbin/
- 發(fā)送USR2信號(hào)給nginx的master
查看master的進(jìn)程
[root@localhost sbin]# ps -ef | grep 'nginx'
發(fā)送USR2信號(hào)
[root@localhost sbin]# kill -USR2 8930
再次查看
[root@localhost sbin]# ps -ef | grep ngi
此時(shí)熱部署已經(jīng)完成
- 給舊的master發(fā)送WINCH信號(hào),使其原本工作進(jìn)程退出
[root@localhost sbin]# kill -WINCH 8930
- 關(guān)閉舊的master進(jìn)程
[root@localhost sbin]# kill -9 8930
補(bǔ)充一下:可能有的小伙伴看到這里會(huì)疑惑,我現(xiàn)在相當(dāng)于有兩個(gè)命令一個(gè)是nginx(新版本)和一個(gè)nginx.old(老版本),而此時(shí)正在運(yùn)行的nginx進(jìn)程就可以使用nginx(新版本) 進(jìn)行關(guān)閉,然后再進(jìn)行使用,間接地完成了版本的更新(老版本的nginx.old可以刪除也可以保留)