導航:首頁 > 文件管理 > nginx多個進程配置文件不更新問題

nginx多個進程配置文件不更新問題

發布時間:2025-03-07 00:00:00

1. Nginx - 深入理解nginx的處理請求、進程關系和配置文件重載

Nginx的系統學習整理的第三篇博客,主要介紹nginx的應用場景和架構基礎,以便更好的理解,再生產環境中進行性能調優。


Nginx的三個主要應用場景:



運行中的Nginx進程間的關系:


Nginx部署以後,我們首先要了解的是Nginx進程間的關系,是怎麼做到處理高並發的請求的原理和實現,可以使用pstree命令查看master和worker的關系。


Nginx是支持單進程(master進程)提供服務的,那麼為什麼產品環境下要按照master-worker方式配置啟動多個進程,這樣做主要有兩點:



Nginx請求處理流程:


Nginx可以搭建靜態web伺服器,反向代理伺服器,對一些限流、限速的方向上是有所不同的,這些都要求我們對Nginx架構有清晰的了解,需要我們從Nginx內部看Nginx是怎樣處理請求的。


當web請求或者tcp請求進入到Nginx上,Nginx內部有三個大的狀態機,傳輸層(Tcp/Udp)狀態機、Http狀態機,以及處理郵件的Mall狀態機,為什麼要叫它狀態機呢,是因為Nginx中的核心用非阻塞的事件驅動處理引擎,就是我們所說的epoll非同步處理引擎以後,通常都需要使用狀態機對請求進行正確處理的。


當處理靜態資源的時候會有一個問題,當整個內存不足時完全緩存文件信息的時候,AIO會退換成使用線程池處理磁碟的阻塞調用。


對於每一個處理完成的請求會記錄到Access訪問日記和錯誤日誌里,更多的時候Nginx作為反向代理伺服器使用的,可以使用協議傳輸到後面的伺服器,也可以通過應用層的協議,代理到響應的應用伺服器


配置文件重載的原理真相:


想了解配置文件重載的原理真相,需要先了解Nginx的組成,Nginx一共有四個組成部分:Nginx二進制可執行文件,由各源碼編譯出的一個文件;Nginx.conf配置文件,控制Nginx的行為;Access.log訪問日誌,記錄每一條http請求信息;Error.log錯誤日誌,定位問題。


reload配置文件重載流程:


Nginx配置文件重載如圖所示,大致可分三步:



注意,在新老配置進程交替過程中,新老進程是同時存在的,如果是異常的請求出了問題,客戶端長時間沒有處理,會導致請求長時間佔用在內存中,worker進程就會一直存在,解決這個問題的辦法設置,可以設置worker_shutdown_timeout解決。


升級流程:



常說Nginx要優雅的關閉worker進程,Nginx的worker進程可以識別出當前的鏈接沒有正在處理請求,這個時候我們在關閉鏈接。


Nginx優雅的關閉主要針對的是http請求,對於想tcp、websocket這種請求Nginx也是無能為力的。

閱讀全文

與nginx多個進程配置文件不更新問題相關的資料

熱點內容
直播帶貨運營怎麼做數據 瀏覽:882
linux系統csv文件打開亂碼 瀏覽:624
js平方根計算 瀏覽:474
命令提示符如何看網路結構 瀏覽:921
mac的lr配置文件路徑 瀏覽:424
在電腦上怎麼qq傳文件怎麼打開不了 瀏覽:154
百度雲怎麼找本地文件 瀏覽:661
小米4怎樣把程序加密 瀏覽:118
蘋果手機屏幕6個密碼 瀏覽:882
如何用手機編程小游戲 瀏覽:531
輸入你的小程序appid 瀏覽:276
ps文件暫存檔已滿 瀏覽:230
微信紅包留言可以語音 瀏覽:192
c語言畫直線代碼 瀏覽:107
華為g7文件管理在哪裡 瀏覽:74
word2003修改批註人 瀏覽:445
網路的規模是如何擴大的 瀏覽:381
資料文件夾單價多少 瀏覽:813
newfilejava 瀏覽:681
怎麼卸載天貓精靈里的app 瀏覽:544

友情鏈接