Nginx日志是網站故障排查的利器,它主要包含訪問日志和錯誤日志兩部分。本文將指導您如何利用這兩類日志高效定位問題。
一、訪問日志 (access log)
訪問日志記錄了所有對網站的請求信息,包括客戶端IP、請求時間、URL、http狀態碼等關鍵數據。
常用字段說明:
- $remote_addr:客戶端IP地址。
- $request_time:請求處理時間。
- $status:HTTP狀態碼 (例如:200, 404, 500)。
- $body_bytes_sent:發送給客戶端的響應體字節數。
- $http_referer:來源頁面 (用戶從哪個頁面跳轉到當前頁面)。
- $http_user_agent:客戶端瀏覽器信息。
常見問題排查:
- 404錯誤:檢查日志中返回404狀態碼的請求,確認URL是否正確,資源文件是否存在。
- 500錯誤:此類錯誤通常需要結合錯誤日志進行分析。
- 慢請求:利用$request_time字段篩選出處理時間過長的請求,找出瓶頸所在。
- 流量異常:統計特定時間段的訪問量,識別異常流量峰值。
二、錯誤日志 (Error log)
錯誤日志記錄了nginx運行過程中出現的錯誤信息,例如配置錯誤、權限問題等。
常用字段說明:
常見問題排查:
- 配置錯誤:檢查錯誤日志中關于配置錯誤的提示,修改Nginx配置文件。
- 權限問題:查看日志中權限相關的錯誤,確保Nginx進程擁有足夠的權限訪問文件和目錄。
- 模塊加載失敗:檢查模塊加載失敗信息,確認所有必要模塊已正確安裝和加載。
三、問題排查步驟:
- 確定問題類型:首先判斷是訪問問題還是服務器內部錯誤。
- 查看相關日志:根據問題類型選擇訪問日志或錯誤日志。
- 篩選關鍵信息:使用grep等命令篩選特定狀態碼、錯誤信息等。
- 分析請求路徑:檢查訪問日志中的URL,分析請求是否正確。
- 結合其他工具:必要時結合cURL、telnet等工具輔助診斷。
四、示例命令:
- 查看最近的錯誤日志: tail -n 100 /var/log/nginx/error.log
- 查看特定狀態碼 (例如404) 的訪問日志: grep ‘ 404 ‘ /var/log/nginx/access.log
- 統計特定時間段的訪問量: awk ‘{print $4}’ /var/log/nginx/access.log | cut -d: -f1 | sort | uniq -c | sort -nr
熟練掌握Nginx日志分析方法,將大幅提升您排查和解決網站問題的效率。