這邊我將Nginx的命令分為兩塊,一塊是Nginx的命令行命令,主要用來查看Nginx的安裝信息,幫助信息等。還有一塊就是Nginx的運維命令,主要用來啟動關閉服務。
命令行命令
Nginx的命令行參數比較少,我們可以使用以下命令查看Nginx支持的命令:
/var » nginx -h
nginx version: nginx/1.17.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/Cellar/nginx/1.17.2/)
-c filename : set configuration file (default: /usr/local/etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
下面分別對這些參數做下說明
- nginx -h:查看幫助
- nginx -v:查看nginx的版本
- nginx -V:查看版本和nginx的配置選項
- nginx -t:測試配置文件的正確性
- Nginx -T: 測試配置文件,並顯示配置文件(這個命令可以快速查看配置文件)
- nginx -q:測試配置文件,但是只顯示錯誤信息
- nginx -s:發送信號,下面詳細介紹
- nginx -p:設置前綴
- nginx -c:設置配置文件
- nginx -g:附加配置文件路徑
運維命令
運維命令主要用於對Nginx服務的啟動、重啟和停止等。Nginx可以接收的信號有:
信號 | 作用 |
---|---|
TERM或INT | 快速停止Nginx服務 |
QUIT | 平緩停止Nginx服務 |
HUP | 使用新的配置文件啟動進程,之后平緩停止原有進程,“平滑重啟”的功能 |
USR1 | 重新打開日志文件,常用於日志切割 |
USR2 | 使用新版本的Nginx文件啟動服務,之后平緩停止原有進程,“平滑升級”的功能 |
WINCH | 平緩停止worker進程,用於Nginx服務器平滑升級 |
kill SIGNAL PID
或者
nginx -s [option]
服務啟動
# nginx
# 當然我們可以只用-c選項制定配置文件,不指定的話就是使用默認的配置
# nginx -c [path]
直接運行nginx的二進制文件,沒有報錯則表明服務已經啟動了。可以使用ps
命令查看進程。
服務停止
停止nginx服務的方法有很多,建議使用下面的第一和第二種。
# 立即停止
# nginx -s stop
或者
# 平滑停止
# nginx -s quit
或者
# kill TERM | INT | QUIT PID
或者(不建議這么停止服務)
# kill -9 PID
服務重啟
更改Nginx服務器的配置和加入新模塊后,如果希望當前的Nginx服務應用新的配置或使新模塊生效,就需要重啟Nginx服務。當然我們可以先關閉Nginx服務,然后使用新的Nginx配置文件重啟服務。
這里主要介紹Nginx服務的平滑重啟。平滑重啟是這樣一個過程:Nginx服務進程接收到信號后,首先讀取新的Nginx配置文件,如果配置語法正確,則啟動新的Nginx服務,然后平緩關閉舊的服務進程;如果新的Nginx配置有問題,將顯示錯誤,仍然使用舊的Nginx進程提供服務。
# 平滑重啟服務
# nginx -s reload
或者
# kill HUP PID
服務平滑升級
平滑升級是指:當需要將正在運行中的Nginx升級、添加/刪除服務器模塊時,可以在不中斷服務的情況下,使用新版本、重編譯的Nginx可執行程序替換舊版本的可執行程序。
平滑升級的過程是這樣的,Nginx服務接收到USR2信號后,首先將舊的nginx.pid文件(如果在配置文件中更改過這個文件的名字,也是相同的過程)添加后綴.oldbin,變為nginx.pid.oldbin文件;然后執行新版本Nginx服務器的二進制文件啟動服務。如果新的服務啟動成功,系統中將有新舊兩個Nginx服務共同提供Web服務。之后,需要向舊的Nginx服務進程發送WINCH信號,使舊的Nginx服務平滑停止,並刪除nginx.pid.oldbin文件。在發送WINCH信號之前,可以隨時停止新的Nginx服務。
為了實現Nginx服務器的平滑升級,新的服務器安裝路徑應該和舊的保持一致。因此建議用戶在安裝新服務器之前先備份舊服務器。如果由於某種原因無法保持新舊服務器安裝路徑一致,則可以先使用以下命令將舊服務器的安裝路徑更改為新服務器的安裝路徑:
nginx -p newInstallPath
其中,newInstallPath為新服務器的安裝路徑。之后,備份舊服務器,安裝新服務器即可。做好准備工作以后,使用以下命令實現Nginx服務的平滑升級:
nginx -g USR2
通過ps -ef | grep nginx查看新的Nginx服務啟動正常,啟動正常以后再使用以下命令
nginx -g WINCH
WINCH信號用於發送平滑停止舊服務信號。這樣就在不停止提供Web服務的前提下完成了Nginx服務器的平滑升級。