執行和控制Nginx 命令列引數和訊號

2022-05-10 07:46:07 字數 4655 閱讀 2767

nginx中文文件: 

nginx的啟動、停止、平滑重啟、訊號控制和平滑公升級:

命令列引數:

常用命令:

-c filename:設定配置檔案。

-t :不執行,而僅僅測試配置檔案。nginx 將檢查配置檔案的語法的正確性,並嘗試開啟配置檔案中所引用到的檔案。

-s :傳遞乙個訊號,stop快速關閉,quit從容關閉,reopen重新開啟日誌檔案、用於切換日誌檔案,reload過載配置檔案。

-v :顯示nginx的版本。

-v:顯示nginx的版本,編譯器版本和配置引數

控制訊號:

可以使用訊號系統來控制主程序。預設,nginx 將其主程序的 pid 寫入到 /usr/local/nginx/logs/nginx.pid 檔案中。通過傳遞引數給 ./configure 或使用 pid 指令,來改變該檔案的位置。 

主程序可以處理以下的訊號:

term,int

快速關閉

quit

從容關閉

hup重新配置

用新的配置開始新的工作程序

從容關閉舊的工作程序

usr1

重新開啟日誌檔案,在切割日誌時用途較大

usr2

平滑公升級可執行程式

winch

從容關閉工作程序

啟動:

[root@localhost ~]# alias nginx='/usr/local/nginx/sbin/nginx'

[root@localhost ~]# nginx -c /usr/local/nginx/conf/nginx.conf

[root@localhost ~]# ps -ef|grep nginx

root 2073 1 0 10:37 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

nobody 2074 2073 0 10:37 ? 00:00:00 nginx: worker process

root 2076 2022 0 10:37 pts/0 00:00:00 grep nginx

[root@localhost ~]#

停止:從容停止:

# ` 字元是數字鍵盤 1 字元左邊的那個字元
[root@localhost ~]# kill -quit `cat /usr/local/nginx/logs/nginx.pid`
快速停止:

[root@localhost ~]# kill -term `cat /usr/local/nginx/logs/nginx.pid`

[root@localhost ~]# kill -int `cat /usr/local/nginx/logs/nginx.pid`
強行停止:

[root@localhost ~]# kill -9 nginx
重啟:1.普通重啟:關閉程序,修改配置後,重啟程序

3.平滑更新nginx二進位制,不會停止處理請求

注意:在過載前,測試一下配置檔案:

# -t 引數將檢查配置檔案的語法是否正確,缺省會檢查 /usr/local/nginx/conf/nginx.conf 檔案
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

# 如果要對指定配置檔案進行語法檢查,可以繼續新增 -c 引數
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@localhost ~]#

nginx的平滑重啟:

如果改變了nginx的配置檔案,想重啟nginx,同樣可以傳送系統型號給nginx主程序的方式來進行,重啟之前,要確認配置檔案是否正確

[root@localhost ~]# kill -hup 【nginx主程序號】
當 nginx 接收到 hup 訊號時,它會嘗試先解析配置檔案,如果成功,就應用新的配置檔案(例如,重新開啟日誌檔案或監聽的套接字)。之後,nginx 執行新的工作程序並從容關閉舊的工作程序。通知工作程序關閉監聽套接字,但是繼續為當前連線的客戶提供服務。所有的客戶端的服務完成後,舊的工作程序被關閉。如果新的配置檔案應用失敗,nginx 將繼續使用舊的配置檔案進行工作。

nginx的平滑公升級:

當需要將正在執行中的nginx公升級、新增/刪除伺服器模組時,可以在不中斷服務的情況下,使用新的nginx可執行程式替換舊的:

1.使用新的可執行程式替換舊的可執行程式,對於編譯安裝的nginx,可以將新版本編譯安裝到nginx安裝路徑中,替換之前,備份一下舊的可執行檔案

2.傳送以下指令:

[root@localhost ~]# kill -usr2 【舊版本的nginx主程序號】
3.舊版本的nginx的主程序將重新命名它的pid檔案為.oldbin(例如:/usr/local/nginx/logs/nginx.pid.oldbin),然後執行新版本的nginx可執行程式,依次啟動新的主程序和新的工作程序。

4.此時,新、舊版本的nginx例項會同時執行,共同處理輸入的請求,要逐步停止舊版本的nginx,必須傳送winch訊號給舊的主程序,然後,它的工作程序就開始從容關閉:

[root@localhost ~]# kill -winch 【舊版本的nginx主程序號】
5.一段時間後,舊的工作程序(worker process)處理了所有已連線的請求後退出,僅由新的工作程序來處理輸入的請求了。

6.這時候,可以決定是使用新版本,還是恢復到舊版了:

kill -hup  【舊的主程序號】:nginx將在不過載配置檔案的情況下啟動它的工作程序

kill -quit 【新的主程序號】:從容關閉其工作程序(worker process)

kill -term 【新的主程序號】:強制退出

kill 【新的主程序號或舊的主程序號】:如果因為某些原因新的工作程序不能退出,則向其傳送kill訊號

新的主程序退出後,舊的主程序會移除.oldbin字首,恢復為它的.pid檔案,這樣,一切就都恢復到公升級之前了。

如果嘗試公升級成功,而你也希望保留新的伺服器時,可傳送quit訊號給舊的主程序,使其退出而只留下新的伺服器執行。

Nginx命令列控制

nginx命令列控制 在linux系統中,我們需要使用命令列來控制nginx服務的啟動和停止 過載配置檔案 回滾日誌檔案與平滑公升級等操作,本篇文章簡單記錄nginx常用命令行的使用。nginx預設安裝在 usr local nginx 中,配置檔案預設路徑為 usr local nginx con...

Nginx資料之命令列控制

指定配置檔案啟動 使用 c引數指定配置檔案 usr local nginx sbin nginx c tmpnginx.conf 指定安裝目錄的啟動 使用 p引數指定nginx的安裝目錄 usr local nginx sbin nginx p usr local nginx 測試配置資訊是否有錯誤...

命令列引數

c 程式設計師參考 main方法可以使用引數,在這種情況下它採用下列形式之一 static int main string args static void main string args main方法的引數是表示命令行引數的string陣列。通常通過測試length屬性來檢查引數是否存在,例如 ...