青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 網(wǎng)站 服務器 查看內(nèi)容

Nginx中reload流程的原理真相詳解

2022-10-17 09:10| 查看: 1444 |來源: 互聯(lián)網(wǎng)

今天這篇文章主要來介紹下 Nginx 的 reload 流程。實際上在之前文章中,在更改了 nginx 配置文件時,我們都會執(zhí)行 nginx -s reload 命令,我們執(zhí)行這條命令的原 ...

今天這篇文章主要來介紹下 Nginx 的 reload 流程。實際上在之前文章中,在更改了 nginx 配置文件時,我們都會執(zhí)行 nginx -s reload 命令,我們執(zhí)行這條命令的原因是希望 nginx 不停止服務始終在處理新的請求的同時把 nginx 的配置文件平滑的把舊的 nginx.conf 配置更新為新的 nginx.conf 配置。

這樣一個功能對于 nginx 非常有必要,但是有時候我們會發(fā)現(xiàn)在執(zhí)行nginx -s reload命令后,worker 子進程的數(shù)量會變多了,這是因為老的配置運行的 worker 進程長時間沒有退出,當使用 stream 做四層反向代理的時候,可能這種場景會更多。

那么下面我們通過分析 nginx 的 reload 流程,來探究下 nginx 到底做了些什么?所謂優(yōu)雅的退出和立即退出有什么區(qū)別?

reload 流程

第一步在修改好 nginx 的配置文件 nginx.conf 后,向 master 進程發(fā)送 HUP 信號,這實際上和我們在命令行執(zhí)行nginx -s reload命令效果是一樣的。

那么 master 進程在收到 HUP 信號以后,會在第二步檢查我們的配置文件語法是否正確,也就是說我們并不一定非要在 nginx -s reload 前執(zhí)行 nginx -t 檢驗下語法是否正確,因為在第二步 nginx 的 master 進程一定會執(zhí)行這個步驟。

在 nginx 的配置語法全部正確以后,master 進程會打開新的監(jiān)聽端口,為什么要在 master 進程中打開新的監(jiān)聽端口?因為我們可能在 nginx.conf 中會引入新的例如 443 或者之前我們沒有打開的的監(jiān)聽端口,而所有 worker 進程是 master 進程 的子進程,子進程會繼承父進程所有已經(jīng)打開的端口,這是 linux 操作系統(tǒng)定義的,所以第三步,我們 master 進程打開了可能引入的新的監(jiān)聽端口。

接下來 mster 進程會用新的 nginx.conf 配置文件來啟動新的 worker 子進程,那么老的 worker 子進程會怎么樣呢?

我們會在第五步在啟動新的 worker 子進程以后,由 master 進程再向老 worker 子進程發(fā)送 QUIT 信號,QUIT 信號和 TERM,INT 信號是不一樣的,QUIT 信號是請優(yōu)雅地關閉子進程,這時候需要關注順序,因為 nginx 需要保證平滑,所以要先啟動新的 worker 子進程,再向老的 worker 子進程發(fā)送 QUIT 信號。

那么老的 master 子進程收到 QUIT 信號后,首先關閉監(jiān)聽句柄,也就是說這個時候新的連接只會到新的 worker 子進程,所以雖然他們之間有時間差,但是時間是非常快速的,那么關閉監(jiān)聽句柄后,處理完當前連接后就結束進程。

下面看 reload 不停機載入新配置的圖示。

reload 不停機載入新配置

master 進程上原先有四個綠色的 worker 子進程,它們使用了老的配置,當我們更改了 nginx.conf 配置文件后,向 master 發(fā)送 SIGHUP 信號或者執(zhí)行 reload 命令, 然后 master 會用新的配置文件啟動四個新的黃色 worker 子進程,此時是四個老的綠色 worker 子進程和四個新的黃色的 worker 子進程是并存的。那么老的 worker 子進程在正常的情況下會在處理已經(jīng)建立好的連接上的請求之后關閉這個連接,哪怕這個連接是 keeplive 請求也會正常關閉。

但是異常情況,如果有一些請求出現(xiàn)問題,客戶端長時間無法處理,那么就會導致這個請求長時間停留在這個 worker 子進程當中,那么這個 worker 子進程會長時間存在,因為新的連接已經(jīng)跑在黃色的 worker 子進程中,所以影響并不會很大,唯一會影響的就是綠色的 worker 子進程會長時間存在,但也只影響已存在的連接,不會影響新的連接。

我們有什么辦法處理呢?在新版本中提供了一個新的配置 worker_shutdown_timeout,也就是說最長等待多長時間,這樣 master 進程啟動新的黃色 worker 進程之后,如果老的 worker 進程一直沒有退出,時間到了之后會強制把老的 worker 進程退出掉。

總結

以上所述是小編給大家介紹的Nginx中reload流程的原理真相詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對17站長網(wǎng)的支持!

本文最后更新于 2022-10-17 09:10,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號:w17tui,關注站長、創(chuàng)業(yè)、關注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務,與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關注站長網(wǎng)微信

大家都在看

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 51久久成人国产精品麻豆 | 青娱国产区在线 | 久久精品国产亚洲AV影院 | 久久国产精品久久国产精品 | 男男高h浪荡受h | 亚洲视频999 | 成人在线观看播放 | 又硬又粗又大一区二区三区视频 | 无罩看奶禁18 | 免费国产成人高清在线看软件 | FREECHINESE东北女人真爽 free18sex性自拍裸舞 | 亚洲国产精品VA在线看黑人 | 6 10young俄罗斯 | 国产偷抇久久精品A片蜜臀AV | 操老太太的逼 | 公交车轮C关老师 | 精品国产福利一区二区在线 | 双性精跪趴灌满h室友4p | 乳色吐息未增删樱花ED在线观看 | 午夜免费小视频 | 学生小泬无遮挡女HD | 亚洲国产精品无码中文字满 | 97精品在线播放 | 么么哒日本影院 | 日本xxxx69动漫 | 国产激情视频在线观看 | 欧美国产日韩久久久 | 暖暖视频在线观看高清... | 日韩欧美国产免费看清风阁 | 欧美同志高清vivoeso | 乌克兰粉嫩摘花第一次 | 日本无码专区亚洲麻豆 | 暖暖 免费 高清 日本在线 | 挺进绝色老师的紧窄小肉六 | 一本之道加勒比在线观看 | 美女扒开腿让男生桶爽免费APP | 亚洲成AV人片一区二区不卡 | 日韩精品无码久久一区二区三 | 日本午夜精品久久久无码 | 国产精自产拍久久久久久蜜 | 国产精品女上位在线观看 |