以下是Ubuntu Nginx常見錯誤碼及解決方法:
- 400 Bad Request(請求格式錯誤):檢查客戶端請求格式,確保HTTP頭或Body符合規范。
- 401 Unauthorized(未授權):配置Nginx的
auth_basic或auth_request模塊,提供有效認證信息。
- 403 Forbidden(禁止訪問):
- 檢查Nginx配置中的
user權限,確保對目標文件/目錄有讀取權限。
- 使用
sudo chown -R www-data:www-data /path/to/directory修改權限。
- 404 Not Found(資源未找到):
- 確認請求URL正確,檢查Nginx配置中的
location塊和文件路徑。
- 若為反向代理,確保上游服務正常運行且端口配置正確。
- 500 Internal Server Error(服務器內部錯誤):
- 查看Nginx錯誤日志
/var/log/nginx/error.log,定位后端應用或配置問題。
- 檢查后端服務(如PHP-FPM、Python應用)是否正常運行。
- 502 Bad Gateway(上游響應無效):
- 確保上游服務器(如API、數據庫)可訪問,檢查代理配置中的
proxy_pass地址和端口。
- 調整
proxy_connect_timeout和proxy_read_timeout參數。
- 503 Service Unavailable(服務不可用):
- 檢查服務器資源(CPU、內存)是否過載,優化或擴容。
- 若為維護狀態,可通過Nginx配置
return 503并添加維護頁面。
- 504 Gateway Timeout(網關超時):
- 增加上游請求超時時間,如
proxy_connect_timeout 60s;。
- 檢查網絡連接,確保Nginx與上游服務器通信正常。
通用排查步驟:
- 查看錯誤日志:
sudo tail -f /var/log/nginx/error.log。
- 檢查配置語法:
sudo nginx -t,修復語法錯誤。
- 排查端口占用:
sudo netstat -tuln | grep <端口>,修改沖突端口。
- 驗證權限:確保Nginx用戶(通常為
www-data)對相關文件/目錄有訪問權限。