溫馨提示×

Ubuntu如何排查Nginx錯誤日志

小樊
58
2025-09-30 03:58:50
欄目: 智能運維

1. 定位Nginx錯誤日志文件
Ubuntu系統中,Nginx錯誤日志的默認路徑/var/log/nginx/error.log。若你為站點配置了自定義日志路徑(如在/etc/nginx/sites-available/your-site.conf中通過error_log指令修改),需以實際配置為準。

2. 實時查看錯誤日志
使用tail -f命令可實時監控錯誤日志的最新內容,便于快速定位正在發生的錯誤:

sudo tail -f /var/log/nginx/error.log

若需查看最近的若干條日志(如最后50條),可使用:

sudo tail -n 50 /var/log/nginx/error.log

3. 篩選特定錯誤類型
通過grep命令過濾日志中的關鍵字,可快速定位特定問題:

  • 查看404 Not Found錯誤(頁面不存在):
    sudo tail -f /var/log/nginx/error.log | grep "404"
    
  • 查看502 Bad Gateway錯誤(后端服務不可用):
    sudo tail -f /var/log/nginx/error.log | grep "502"
    
  • 查看連接超時錯誤:
    sudo tail -f /var/log/nginx/error.log | grep "timeout"
    

4. 調整日志級別(可選)
Nginx的error_log指令支持設置日志級別,控制記錄的錯誤詳細程度(從低到高):

  • debug(調試信息,最詳細,生產環境慎用)
  • info(常規信息,如服務啟動、停止)
  • notice(普通通知,如配置重載)
  • warn(警告,如端口占用、磁盤空間不足)
  • error(錯誤,如請求處理失敗,默認級別)
  • crit(嚴重錯誤,如Nginx進程崩潰)
  • alert(警報,需立即處理)
  • emerg(緊急,系統不可用)

修改步驟
① 編輯Nginx主配置文件(/etc/nginx/nginx.conf):

sudo nano /etc/nginx/nginx.conf

② 找到error_log指令(通常在http塊內),修改級別(如設置為warn):

error_log /var/log/nginx/error.log warn;

③ 保存并退出,重新加載Nginx配置:

sudo nginx -s reload

④ 驗證日志級別是否生效:

sudo tail -f /var/log/nginx/error.log

5. 結合其他日志交叉分析
若錯誤日志中的信息不足以定位問題,可結合以下日志進一步分析:

  • Nginx訪問日志/var/log/nginx/access.log):查看請求的IP、方法、路徑、狀態碼等,輔助判斷錯誤來源(如大量404錯誤可能源于前端路由配置錯誤)。
  • PHP-FPM錯誤日志/var/log/php-fpm.log/var/log/php7.x-fpm.log):若錯誤與PHP腳本相關(如502錯誤),需檢查PHP-FPM日志中的執行錯誤。
  • 系統日志/var/log/syslogjournalctl):若錯誤與系統資源(如內存耗盡、磁盤空間不足)相關,可通過系統日志定位根本原因。

6. 常見問題排查示例

  • Nginx無法啟動:查看錯誤日志中的語法錯誤(如配置文件中括號未閉合、指令拼寫錯誤),使用sudo nginx -t測試配置文件語法。
  • 端口被占用:錯誤日志中會出現“Address already in use”提示,使用sudo netstat -tulnp | grep :80查看占用端口的進程,停止沖突進程或修改Nginx監聽端口。
  • 權限問題:錯誤日志中會出現“Permission denied”提示,檢查Nginx進程用戶(通常為www-data)對日志文件或網站目錄的讀寫權限,使用sudo chown -R www-data:www-data /var/log/nginx/修正權限。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女