日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx常用操作命令

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.conf

2.檢查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 quit

5.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

輸出信息

停止服務操作

#從容停止Nginx kill -QUIT 主進程號 #快速停止Nginx kill -TERM 主進程號 #強制停止Nginx pkill -9 nginx #平滑重啟nginx: kill -HUP 主進程號

二、高階維護

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常用操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。