好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 探究Nginx中reload流程的原理真相

探究Nginx中reload流程的原理真相

熱門標簽:接電話機器人罵人 代理外呼系統創業 百度地圖標注尺寸無法顯示 400電話申請知乎 大連電銷外呼系統運營商 400電話干嘛怎么申請信用卡 外呼系統虛擬號碼 泰州智能外呼系統排名 長春電銷外呼系統代理商

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

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

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

reload 流程

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

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

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

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

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

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

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

reload 不停機載入新配置

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

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

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

總結

本文主要講解了 Nginx 平滑升級新的配置文件的流程,在我們了解了優雅關閉 worker 子進程和啟動新配置的 worker 子進程流程間的關系后,我們可以更好地處理罕見的異常場景。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:大慶 臺灣 興安盟 雅安 中衛 清遠 長治 安陽

巨人網絡通訊聲明:本文標題《探究Nginx中reload流程的原理真相》,本文關鍵詞  探究,Nginx,中,reload,流程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《探究Nginx中reload流程的原理真相》相關的同類信息!
  • 本頁收集關于探究Nginx中reload流程的原理真相的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美做受??4777cos| 老师臭丝袜脚下的奴丨ⅴk | 女人与公狍交视频免费| 办公室可以不可以干湿一体| 欧美自拍另类| 国产精品 重口 调教系列| 国产又粗又猛又爽又黄的学生视频| 色屁屁TS人妖系列二区| 漫画黄| 偷偷操视频| 爽?好紧?宝贝别夹大巴张津瑜| 97亚洲AV无码秘?蜜桃网| 中国女人18毛片| 各类毛片| 国产97色在线|日韩| 久久偷看各类wc女厕| 国产精品99999乳液爆品| 99精品国产第一福利网站| 国产5g影院天天爽天天看| 免费看无码一级A片在线播放男男 一级做a爰片久久毛片无码电影 | 国产色情一区二区视频| 公您的好长呀好大进不去视频| poronovideos日本| 亚洲产国偷v产偷v自拍色戒| 荡公乱妇11部分小雪小说| 好吊妞无缓冲视频观看| 再深点灬舒服灬在快点视频| 久久精品免费观看久久| 穿到古代当名士| 成人性做爰A片毛片名字| 99日韩人妻一区二区三区全部| 看一级黄色电影| 国内外成人免费视频| 蜜臀AV人妻国产精品建身房| 国产女人被狂躁到高潮小说| 久久久精品一级二级三级| 天降女子樱花动漫| 久久精品视频1| 成 人 免费 黄 色 网站无毒下载| 男女一级xo片| 高清国产一级毛片国语|