HTTP 502 錯誤是什麼?常見原因與解決方式完整解析
當使用者造訪網站卻跳出「502 Bad Gateway」錯誤頁時,不只會讓人一頭霧水,還可能間接影響網站排名與品牌信任感。
那麼,502 錯誤是什麼?發生的話要該怎麼解決呢?
本篇文章用輕鬆、實用的方式,陪你一步步搞懂 502 錯誤是怎麼來的、怎麼處理,還有怎麼預防它再次發生,讓網站維運更安心。
什麼是 HTTP 502 錯誤?
HTTP 502 是一種「伺服器錯誤」狀況碼,完整名稱為 502 Bad Gateway,意思是網站的網關或代理伺服器從上游伺服器接收到無效回應。
簡單來說,這個錯誤通常出現在以下架構中:
只要中間任一環節斷線、超時或錯誤,502 錯誤就會跳出。
其他常見錯誤的比較:
錯誤碼 |
名稱 |
發生原因 |
常見場景 |
500 |
Internal Server Error |
程式本身出錯 |
例外沒處理好、語法錯誤 |
502 |
Bad Gateway |
上下游伺服器溝通有誤 |
Nginx ↔ PHP-FPM 失聯或超時 |
503 |
Service Unavailable |
伺服器暫時停用 |
維護、更新中或資源爆掉 |
504 |
Gateway Timeout |
等太久沒收到回應 |
後端處理太慢或卡住 |
HTTP 502 錯誤的常見原因
類型 |
發生狀況 |
錯誤訊息 / 判斷方式 |
後端沒開機 |
像是 PHP-FPM、Node.js 沒啟動或掛掉 |
日誌出現 connect() failed、Connection refused |
連線問題 |
Nginx 找不到後端,IP 或 socket 有誤 |
出現 upstream prematurely closed |
設定錯誤 |
proxy_pass 寫錯、端口不符、少了 header |
偶發 502、日誌無法連接 |
DNS 問題 |
伺服器名稱沒被正確解析 |
no such host |
資源過載 |
CPU 爆滿、RAM 滿載、太多人連線 |
在尖峰時間容易 502 |
CDN / 防火牆阻擋 |
Cloudflare 看不到你的主機 |
顯示自家的 502 錯誤頁 |
程式超時 |
查資料太久、API 卡住 |
Nginx 或 Cloudflare timeout 訊息 |
小提醒:這些錯誤訊息常藏在日誌裡,多觀察幾次就會熟悉它們的「脾氣」啦!
該怎麼開始排查 502 錯誤?我們一步步來!
先判斷是哪一層出問題
-
使用者端問題? 換個瀏覽器、清快取、重整試試。
-
CDN 層(像 Cloudflare):先把 proxy 關掉(橘雲變灰雲),或試直連你的原始主機。
-
Nginx 或 Apache? 查看錯誤日誌,看有沒有連線失敗的紀錄。
-
後端伺服器(PHP、Node 等):服務有沒有啟動?Log 有錯嗎?
-
資料庫 / 外部 API? 看是不是哪段卡住。
常用指令
判斷小流程圖
發現 502
→ 看是不是 CDN 的錯誤頁?
├ 是 → 可能是主機擋了 Cloudflare IP
└ 否 → 看 Nginx error.log
├ connect failed → 後端沒啟動?
├ timed out → 程式太慢?timeout 太短?
├ no such host → DNS 出錯?
└ 其他 → 對照訊息再往下查
對症下藥!502 錯誤處理方式對照表
解法 |
適用情境 |
怎麼做 |
重啟服務 |
後端服務沒啟動或卡住 |
systemctl restart php-fpm、pm2 restart all |
延長 timeout |
程式回應太慢常超時 |
修改 Nginx / Cloudflare 的 timeout 設定值 |
擴充主機資源 |
流量高峰撐不住 |
加 RAM、升級主機,或加快取機制 |
修設定檔 |
proxy_pass、socket 設錯 |
檢查 IP/Port 或 socket 路徑,改對後 reload |
更新 DNS |
網域剛換或錯誤快取 |
查 dig、flush DNS、調整 TTL |
開放防火牆 |
CDN 被擋掉連不進來 |
加入白名單,放行 Cloudflare 等的 IP |
優化程式效能 |
查詢太慢或資源吃太多 |
改寫邏輯、加快資料庫查詢、改用佇列 |
如何預防 502 錯誤再次發生?
-
加強架構穩定性:像 Load Balancer、多台後端備援、故障自動重啟機制(PM2、Supervisor)。
-
主動監控:UptimeRobot、NewRelic、Grafana 等工具幫你盯著網站狀態。
-
設定與版本控好控滿:設定檔納入 Git、部署自動化、避免人工失誤。
-
設錯誤通知:一有異常就跳出 LINE、Slack、Email 通知,及早處理才不會嚴重擴大。
502 錯誤對 SEO 有什麼影響?
雖然偶發的 502 錯誤對 SEO 不致命,但長時間發生、重複錯誤或大規模跳出會:
-
降低 Google 搜尋機器人對網站的信任度
-
導致索引延遲甚至移除
-
降低使用者停留時間與轉換率
怎麼補救?
-
自訂錯誤頁面,加上「回首頁」、「回報問題」等功能。
-
快速恢復網站主要頁面。
-
若是預期維護,使用 503 + Retry-After 給搜尋引擎個交代。
FAQ 小問答
Q1. 為什麼全站都正常,只有某幾頁跳 502 錯誤?
Q2. 為什麼我在本機測試都正常,上線卻出錯?
Q3. Cloudflare 顯示 502,但我主機沒壞啊?
Q4. 502 和 504 有什麼差別?
補充:錯誤頁面、自訂設定範例
這邊整理幾段 Nginx 設定範例,讓你快速套用:
PHP-FPM + Nginx 設定
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 或 127.0.0.1:9000
fastcgi_index index.php;
fastcgi_connect_timeout 5s;
fastcgi_send_timeout 30s;
fastcgi_read_timeout 30s;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Nginx 反向代理上游設定
upstream app_backend {
server 127.0.0.1:3000 max_fails=3 fail_timeout=30s;
}
location /api/ {
proxy_pass http://app_backend;
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
自訂 502 錯誤頁
location = /custom_502.html {
root /var/www/errors;
internal;
}
記得可以放一個溫柔的說明、回首頁連結,甚至放個小報修表單唷~
結語:別讓錯誤頁嚇跑你的用戶!
雖然 502 錯誤看起來只是一個壞掉的頁面,但背後可能藏著設定、資源、架構甚至程式的問題。
只要我們掌握檢查技巧、建立良好的監控與備援機制,再加上一點點細心,就能讓網站更穩、更快、更可靠。
如果你是網站管理者、工程師、或正在經營線上服務,希望這篇文章能成為你面對 502 時的安心指南!