Apache 偶發 503 Service Temporarily Unavailable,實際併發極低(僅十幾請求/秒)即觸發,嚴重影響服務可用性。
檢查配置發現載入 mod_bw (Bandwidth Limiting Module) 並設定:
ForceBandWidthModule On BandWidthModule On BandWidth all 1024000 MaxConnection all 150
官方文件明確說明:
Any connection over Max, will get a 503 Service Temporarily Unavailable
即:當前連線數超過 MaxConnection 設定值,新連線直接回傳 503。雖設定 150,但模組計數邏輯或釋放機制可能有Bug,導致實際門檻極低。
MaxConnection all 0 # 0 代表不限制
保留頻寬限制 BandWidth all 1024000 (1MB/s) 防止單一連線佔滿頻寬。
MaxConnection all 500 # 視伺服器能力調整
同時啟用 mod_status 觀察實際併發:
<Location /server-status>
SetHandler server-status
Require ip 127.0.0.1 10.0.0.0/8
</Location>
SetOutputFilter RATE_LIMIT; SetEnv rate-limit 400 (400KB/s)# 壓力測試 ab -n 1000 -c 50 https://your-site.com/ # 觀察錯誤率應為 0%,無 503 回應
mod_bw 的 MaxConnection 參數預設行為極易誤觸發 503。生產環境建議設為 0 (不限制連線數),改用頻寬限制或上層 Nginx/應用層限流,避免因模組 Bug 導致服務不可用。