nginx重載配置文件


一、

     nginx在開發中被越來越多的使用到,負載均衡,統一網關、靜態資源服務器等等,

  這里要說的是一個命令,通過這個命令來實現,服務的熱部署,熱部署的原理就是通過其多進程模型實現

 來看看多進程模型的解釋(這里摘錄其他博主的文章):

Nginx 在啟動后,會有一個 master 進程和多個 worker 進程。

master 進程主要用來管理worker 進程,包括接收來自外界的信號,向各 worker 進程發送信號,監控 worker 進程的運行狀態以及啟動 worker 進程。

worker 進程是用來處理來自客戶端的請求事件。多個 worker 進程之間是對等的,它們同等競爭來自客戶端的請求,各進程互相獨立,一個請求只能在一個 worker 進程中處理。worker 進程的個數是可以設置的,一般會設置與機器 CPU 核數一致,這里面的原因與事件處理模型有關

Nginx 的進程模型,可由下圖來表示:

 

 

通過上圖所示的進程之間的關系:

這種設計帶來以下優點:

1) 利用多核系統的並發處理能力

現代操作系統已經支持多核 CPU 架構,這使得多個進程可以分別占用不同的 CPU 核心來工作。Nginx 中所有的 worker 工作進程都是完全平等的。這提高了網絡性能、降低了請求的時延。

2) 負載均衡

多個 worker 工作進程通過進程間通信來實現負載均衡,即一個請求到來時更容易被分配到負載較輕的 worker 工作進程中處理。這也在一定程度上提高了網絡性能、降低了請求的時延。

3) 管理進程會負責監控工作進程的狀態,並負責管理其行為

管理進程不會占用多少系統資源,它只是用來啟動、停止、監控或使用其他行為來控制工作進程。首先,這提高了系統的可靠性,當 worker 進程出現問題時,管理進程可以啟動新的工作進程來避免系統性能的下降。其次,管理進程支持 Nginx 服務運行中的程序升級、配置項修改等操作,這種設計使得動態可擴展性、動態定制性較容易實現。

 

我們呢就是通過這個特點來熱切換配置文件實現服務部署等操作。

二、  實現的步驟:

    1.修改原配置文件並上傳到nginx的配置文件位置

    2.部署新項目到服務器(不要和原服務在同一端口)

    3.切換到sbin目錄下(該目錄下有可執行的nginx的二進制文件)執行  :nginx  -s  reload   命令

    4.打完收工 ,可以查看服務的啟動情況 netstat  -lptn  命令

    5.通過nginx訪問新服務測試

 

 

    服務熱部署搞定!!!!

 ps:本文有摘抄其他博主的部分這里貼出連接   https://www.cnblogs.com/kkzhilu/p/13637077.html  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM