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 -tnginx: 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...