一、
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