以下是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
)對相關文件/目錄有訪問權限。