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

熱點內容
數據化分析怎麼寫 瀏覽:783
怎麼打開scn格式文件 瀏覽:403
明明是word怎麼變xml文件 瀏覽:735
報班和大數據哪個好 瀏覽:877
首飾cad存什麼文件 瀏覽:927
代碼回溯 瀏覽:526
不會編程如何創建軟體 瀏覽:451
瀏覽:
看文件大小linux 瀏覽:959
單片機數字鍾設計程序 瀏覽:97
多道程序分時系統 瀏覽:356
如何關掉網路 瀏覽:495
16號文件內容 瀏覽:991
程序員最多的城市 瀏覽:761
垂直禮品網站有什麼商機 瀏覽:427
ps文字工具怎麼用 瀏覽:706
網購哪些app比較好 瀏覽:976
idk文件夾 瀏覽:29
b超什麼數據決定寶寶順產難易度 瀏覽:211
互聯網大數據不來源於以下哪個應用 瀏覽:215

友情鏈接