【我的筆記】跟着官方文檔學nginx——Controlling nginx

Controlling nginx,這篇文檔主要講如何細化控制nginx進程,並用配置更新、日誌輪換、nginx更新二進制文件三個例子說明。nginx

開始

前言

nginx 可以用進程命令控制,進程的ID位於logs/nginx.pid。socket

主進程支持如下命令spa

TERM, INT 快速關閉線程

QUIT 正常關閉debug

HUP 改變配置,關閉舊工做線程,開啓新的(keeping up with a changed time zone這句沒看懂)日誌

USR1 重寫log文件code

USR2 升級二進制文件,/sbin/nginx進程

WINCH 關閉工做進程文檔

工做進程支持如下命令it

TERM,INT 同上

QUIT 同上

USR1 同上

WINCH 用於debug,但不知道怎麼用

這裏我

1、配置更新

用HUB命令,會使主進程重讀conf配置文件,並試着使用新配置,成功,則重寫log文件,並關閉(正常關閉)舊工做線程,開啓新的,失敗則回滾至舊配置,不開啓新進程。

2、輪換日誌

首先將日誌更名,USR1發送後,主進程從新打開已經被打開的日誌並分配存活的工做進程,主進程關閉全部文件後通知工做進程重從新打開文件,工做進程新建文件,關閉舊文件。

這個主、工做進程,反覆打開關閉文件我太懂,日誌是主進程管理的麼?USR1以後分給工做進程處理了?

3、更新二進制文件

更新以前先備份,替換後執行USR2, 會出現新的主進程和工做進程,而後,對舊主的執行WINCH,則保留舊主,正常關閉舊工做進程,平滑過渡了請求,注意!此時舊主仍在監聽sockets,若是須要從新啓用它,只需作下面兩個操做

對old master發送HUP消息,再QUIT掉new master

TERM關閉new master,old master會自動回來

若是不須要從新啓用old master,且更新成功,只須要QUIT掉old master

若是從新啓動了,關閉new master了

If the new master process exits then the old master process discards the .oldbin suffix from the file name with the process ID.

這句我看不懂,拋棄帶有pid的文件名以.oldbin結尾的文件是什麼意思

相關文章
相關標籤/搜索