導航:首頁 > 文件管理 > 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多個進程配置文件不更新問題相關的資料

熱點內容
影音先鋒資源站813qq 瀏覽:56
怎麼添加表裡的數據條 瀏覽:689
文件名稱改不了怎麼辦win10 瀏覽:263
附件文件名改成附件名 瀏覽:845
蘋果在華受挫 瀏覽:518
酷雲密碼忘記了怎麼辦 瀏覽:37
法蘭克系統如何設置編程 瀏覽:366
javafxdatepicker 瀏覽:2
mongodb啟動配置文件 瀏覽:691
轉換器未能保存文件如何解決 瀏覽:128
網路如何切換數字電視 瀏覽:957
tin文件 瀏覽:815
電腦文件加密軟體和遠程桌面 瀏覽:886
plsql如何登錄oracle資料庫 瀏覽:804
怎麼看會計科目代碼 瀏覽:916
wps如何清除pdf文件上的文字水印 瀏覽:695
如何用手機免費編程 瀏覽:865
網路安全挑戰賽 瀏覽:369
微信登陸網路異常是怎麼回事 瀏覽:383
蘋果提示輸入舊id密碼 瀏覽:2

友情鏈接