nginx熱更新是什么意思

nginx熱更新就是在操作系統不關軟件直接更新,更新期間軟件直接用。nginx采用master/worker的多進程模型,master進程負責整個nginx進程的管理。nginx的模塊化、熱更新、http處理流程、日志等機制都非常經典。

nginx熱更新是什么意思

配置熱更新

NginX的配置修改之后,在不影響當前服務的情況下進行更新。

信號: HUP

過程: 分為Master部分和Worker部分。

Matser進程:

1> 通過ngx_signal_hanlder解析出獲取的信號,置ngx_reconfigure=1,標識Master要進行配置熱更新操作。  2> 調用ngx_init_cycle初始化新的cycle(重新加載nginx.conf以及各模塊的初始化)。  3> 調用ngx_start_worker_process啟動新的Worker子進程,子進程標識just_respwan=1(NGX_PROCESS_JUST_RESPAWN)表示剛啟動,區分新舊進程。  4> 調用ngx_start_cache_manager啟動新的cache manager子進程和cache loader子進程。子進程標識just_respawn=1(NGX_PROCESS_JUST_RESPAWN)表示剛啟動,區分新舊進程。  5> 睡眠100毫秒之后,調用ngx_signal_worker_process優雅的關閉老的worker、cache manager和cache loader進程。注意:只向just_respawn=0的進程進行發送信號。

Worker進程:

1> 通過ngx_signal_handler解析出為QUIT信號,置ngx_quit=1 2> 調用ngx_close_listening_sockets關閉監聽端口。設置ngx_exting=1 3> 如果定時器紅黑樹中為空,執行ngx_worker_process_exit退出。

注意:?

進程狀態標識:  NGX_PROCESS_RESPAWN    ->     respawn =1   表示子進程退出后 執行重啟操作。 NGX_ PROCESS_JUST_RESPAWN   ->   just_spawn = 1  respawn = 1     表示子進程為剛創建的進程,已區別與老的子進程 以及子進程退出后 執行重啟操作。 NGX_PROCESS_JUST_SPAWN      ->        just_spawn =1             表示子進程為剛創建的進程,已區別與老的子進程  NGX_PROCESS_DETACHED    -> detached = 1     沒有親緣關系,不需要建立通信信道   譬如Binary熱更新。

更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享