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

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接