nginx常用操作命令
一、基礎維護
1.啟動
#1.直接啟動 #進入nginx目錄,執行啟動命令 cd /usr/local/nginx/sbin ./nginx # 或者直接 /usr/local/nginx/sbin/nginx #2.指定配置文件方式啟動 #進入nginx目錄,執行啟動命令 cd /usr/local/nginx/sbin ./nginx -c /usr/local/nginx/conf/nginx.conf #或者 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf2.檢查nginx配置文件
#進入nginx目錄 cd /usr/local/nginx/sbin #檢查配置文件是否有語法操作 ./nginx -t # 或者顯示指定配置文件 ./nginx -t -c /usr/local/nginx/conf/nginx.conf如果配置文件存在語法錯誤,會有相應的提示信息,正常我們修改配置后,先進行檢查,然后在進行重啟
3.平滑的重啟,修改配置后,重新加載配置
#進入nginx目錄 cd /usr/local/nginx/sbin #執行重載命令 ./nginx -s reload原理說明:
nginx工作中,包括一個master進程,多個worker進程。worker進程負責具體的http等相關工作,master進程主要是進行控制。
nginx -s reload 命令加載修改后的配置文件,命令下達后發生如下事件
Nginx的master進程檢查配置文件的正確性,若是錯誤則返回錯誤信息,nginx繼續采用原配置文件進行工作(因為worker未受到影響)
Nginx啟動新的worker進程,采用新的配置文件
Nginx將新的請求分配新的worker進程
Nginx等待以前的worker進程的全部請求已經都返回后,關閉相關worker進程
重復上面過程,知道全部舊的worker進程都被關閉掉。
所以,重啟之后,master的進程號不變,worker的進程號會改變。
4.關閉nginx
#進入nginx目錄 cd /usr/local/nginx/sbin # 快速停止nginx ./nginx -s stop # 完整有序的停止nginx,這個命令會等待所有請求結束后再關閉nginx ./nginx -s quit5.reopen重新打開日志文件
#進入nginx目錄 cd /usr/local/nginx/sbin # 重新打開日志文件 ./nginx -s reopen應用場景:
當需要切割 nginx 日志文件時,我們需要用到 nginx -s reopen 命令,用來完成新日志的生成。當日志文件太大時,一般我們是按天切割文件,也就是按天做個分類,每天的日志放在一個文件中,并用日期命令,方便日后查找。
但時我們簡單的把文件移動并重新命令是無法及時生效的,因為在 linux 下的文件句柄,文件在被打開的情況下 mv 移走文件,操作這個文件的進程還是有這個文件的信息,原進程還是讀寫原來的文件,簡單的 mv 無法生效也就無法完成我們想要的文件分隔。
一般我們需要兩步:
1、移走文件并重命名
2、利用 nginx 的 reopen 功能,完成新日志文件的生成。
二、其他命令重啟、關閉nginx
查看進程號,下圖 master的為主進程號
ps -ef | grep nginx輸出信息
停止服務操作
二、高階維護
2.1 配置日志
請求日志
http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';} $remote_addr #記錄訪問網站的客戶端地址$remote_user #遠程客戶端用戶名$time_local #記錄訪問時間與時區$request #用戶的http請求起始行信息$status #http狀態碼,記錄請求返回的狀態碼,例如:200、301、404等$body_bytes_sent #服務器發送給客戶端的響應body字節數$request_length #請求的長度$request_time #請求處理時間,單位為秒,精度毫秒; 從讀入客戶端的第一個字節開始,直到把最后一個字符發送給客戶端后進行日志寫入為止。$http_referer #記錄此次請求是從哪個連接訪問過來的,可以根據該參數進行防盜鏈設置。$http_user_agent #記錄客戶端訪問信息,例如:瀏覽器、手機客戶端等$http_x_forwarded_for #當前端有代理服務器時,設置web節點記錄客戶端地址的配置,此參數生效的前提是代理服務器也要進行相關的 x_forwarded_for設置常見設置
日志級別
每個日志級別包括更高級別。例如,如果您將日志級別設置為warn,則Nginx還將記錄error,crit,alert和emerg消息。未指定log_level參數時,默認為error。
debug-調試消息。
info -信息性消息。
notice -公告。
warn -警告。
error -處理請求時出錯。
crit -關鍵問題。需要立即采取行動。
alert -警報。必須立即采取行動。
emerg - 緊急情況。系統處于無法使用的狀態。
2.2 高級配置
grpc代理配置
參考文檔
Nginx常用命令(啟動、重啟、關閉、檢查)
總結
以上是生活随笔為你收集整理的nginx常用操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uniapp 打包安装(安卓和ios)
- 下一篇: Flutter之实现生成二维码,扫描二维