Nginx命令列控制

2022-04-29 09:54:12 字數 2703 閱讀 5959

nginx命令列控制

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

nginx預設安裝在/usr/local/nginx/中,配置檔案預設路徑為/usr/local/nginx/conf/nginx.conf,以下記錄是預設情況下的命令列,編譯安裝時自定義路徑的,需要更改命令中的路徑。

1.預設方式啟動nginx

/usr/local/nginx/sbin/nginx

這時nginx會讀取路徑下的配置檔案:/usr/local/nginx/conf/nginx.conf

如果你是原始碼安裝而且使用configure命令執行時使用--conf-path=path指定了nginx.conf的話,預設方式啟動的nginx會去讀取指定的nginx.conf檔案。

2.指定配置檔案啟動

/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf

可以通過-c引數來指定nginx.conf配置檔案

3.指定安裝目錄啟動

/usr/local/nginx/sbin/nginx -p /usr/local/nginx/

可以通過-p引數來指定安裝目錄。

4.指定全域性配置項啟動

/usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;"

可以通過-g引數來指定一些全域性配置項,以致指定的配置項生效。如上面就通過-g來指定pid引數的值為/var/nginx/test.pid。

⚠️:使用-g引數指定全域性配置項的話,有倆點是需要特別注意的。其一,-g指定的引數值不能和nginx.conf檔案中的配置項衝突,比如我使用-g指定了pid引數值為/var/nginx/test.pid,但是在nginx.conf檔案中又寫明pid引數值為/var/log/nginx.pid,這樣會造成nginx無法正常啟動。其二,你使用-g啟動的nginx服務,在執行其它命令時也需要加上-g以及指定的配置項,不然的話可能會出現配置項不匹配的問題。比如我指定pid檔案啟動nginx,但是我暫停nginx服務時,不加上啟動時的引數,會造成nginx找不到對應的pid檔案,無法暫停nginx服務。

5.測試配置資訊

/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

在不啟動nginx的情況下,使用-t引數可以測試nginx的配置檔案是否存在錯誤,執行結果會顯示配置是否正確。

6.測試時不顯示資訊

/usr/local/nginx/sbin/nginx -t -q

在測試nginx配置時,可以新增-q選項,nginx不會將error等級以下的資訊輸出到螢幕上。

7.檢視nginx版本

/usr/local/nginx/sbin/nginx -v

可以通過-v引數來檢視nginx的版本資訊。

8.檢視編譯引數

/usr/local/nginx/sbin/nginx -v

使用-v選項,不僅僅可以檢視nginx的版本資訊,還可以檢視編譯階段的資訊。如gcc編譯器版本、作業系統版本、configure引數等等。

9.快速停止服務

/usr/local/nginx/sbin/nginx -s stop

通過-s選項,給nginx傳送訊號量stop,可以強制停止nginx服務。

10.優雅的停止服務

/usr/local/nginx/sbin/nginx -s quit

使用quit退出與stop退出的不同就在於,quit不是粗暴的直接kill掉nginx服務,而是先關閉監聽介面,停止接收新的連線,然後把當前需要處理的連線全部都處理完,最後再優雅的退出服務。

11.過載配置

/usr/local/nginx/sbin/nginx -s reload

該命令可以在nginx執行時過載nginx.conf配置檔案。其實際實現是先檢測新的配置是否正確,如果正確的話以優雅的方式停止服務,在重新啟動nginx服務。

12.日誌檔案回滾

/usr/local/nginx/sbin/nginx -s reopen

使用reopen引數可以重新開啟日誌檔案,這樣可以將日誌檔案改名或者進行備份,在重新開啟的時候就會生成新的日誌檔案。

13.平滑公升級nginx

一般情況應用的公升級都是需要重啟服務的,但是nginx支援不重啟服務來完成新版本的平滑公升級。

1.通過正在執行的nginx準備公升級

kill -s sigusr2

這時,執行中的nginx將會把pid檔案重新命名,使得新的nginx不會因為pid檔案而無法啟動。

2.啟動新版本的nginx,啟動命令看前文

3.kill掉舊的nginx程序,完成平滑公升級

14.幫助文件

可以使用-h引數或者-?引數可以顯示支援的所有命令列引數。

Nginx資料之命令列控制

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

nginx命令列指令

sudo nginx 開啟 nginx nginx t 測試配置是否有語法錯誤 nginx hvvtq s signal c filename p prefix g directives h 開啟幫助資訊 v 顯示版本資訊並退出 v 顯示版本和配置選項資訊,然後退出 t 檢測配置檔案是否有語法錯誤,...

Nginx 命令列演示筆記

1 過載 nginx s reload2 日誌切割 sbin nginx s reopen3 搭建一台靜態web伺服器 server access log var logs access link.log 4 反向 上游服務 upstream stark server access log home...