4. nginx命令行
1. nginx命令的格式: nginx 指令 指令的參數
2. 查看nginx命令的提示幫助時, 執行 ./sbin/nginx -h
3. 發送信號: ./sbin/nginx -s stop/quit/reopen/reload (立即停止服務/優雅的停止服務/重載配置文件/重新開始記錄日誌文件)
4. 修改完配置文件後, 檢查配置文件是否有配置錯誤, 執行檢測命令: ./sbin/nginx -t
5. 打印nginx的版本信息: ./sbin/nginx -v
命令行演示:
1. 重載配置文件
當修改了nginx配置文件後, nginx在不停止對用戶的服務下使用新的配置項. 執行命令: ./sbin/nginx -s reload
2. 熱部署
nginx正在運行, 此時想要更換新版本的nginx, 執行步驟:
1) 備份老版本的二進制可執行文件, 執行命令 cp ./sbin/nginx ./sbin/nginx.old;
2) 將新版本的可執行文件拷貝到安裝目錄下: cp -rf ../nginx-new/objs/nginx ./sbin/
3) 開始熱部署前, 給正在運行的nginx的master發送信號, 執行命令: kill -USR2 nginx的masterpid進程號. 執行命令後, nginx會新啟一個master進程, 這個新的master進程是用新的二進制文件啟動的. 新的master會生成新的worker, 老的worker也會運行, 接著會把後面進來的新的請求平滑的轉移到新的nginx進程中.
4) 然後執行命令: kill -WINCH 老的nginx的master進程號 , 執行該命令的目的是告訴老的master進程優雅的關閉老的worker進程(當老的worker裏的請求處理完後關閉worker). 執行完後, 老的worker會退出, 新進來的請求會轉移到新的worker上工作. 不過老的master還不會退出, 為了防止升級後出現問題.
3. 切割日誌文件
一般在生產環境中, 日誌每天產生一條, 可以加一個定時執行的bash腳本來做.
4. nginx命令行