-
HTTP 502 錯誤是什麼?常見原因與解決方式完整解析
2026-01-08 00:28:21
目次 什麼是 HTTP 502 錯誤? HTTP 502 錯誤的常見原因 該怎麼開始排查 502 錯誤?我們一步步來! 對症下藥!502 錯誤處理方式對照表 如何預防 502 錯誤再次發生? 502 錯誤對 SEO 有什麼影響? FAQ 小問答 補充:錯誤頁面、自訂設定範例 結語:別讓錯誤頁嚇跑你的用戶!當使用者造訪網站卻跳出「502 Bad Gateway」錯誤頁時,不只會讓人一頭霧水,還可能間接影響網站排名與品牌信任感。
那麼,502 錯誤是什麼?發生的話要該怎麼解決呢?
本篇文章用輕鬆、實用的方式,陪你一步步搞懂 502 錯誤是怎麼來的、怎麼處理,還有怎麼預防它再次發生,讓網站維運更安心。
什麼是 HTTP 502 錯誤?
HTTP 502 是一種「伺服器錯誤」狀況碼,完整名稱為 502 Bad Gateway,意思是網站的網關或代理伺服器從上游伺服器接收到無效回應。
簡單來說,這個錯誤通常出現在以下架構中:
使用者 → Nginx/Cloudflare → 應用程式伺服器 → 資料庫等後端
只要中間任一環節斷線、超時或錯誤,502 錯誤就會跳出。
其他常見錯誤的比較:
錯誤碼
名稱
發生原因
常見場景
500
Internal Server Error
程式本身出錯
例外沒處理好、語法錯誤
502
Bad Gateway
上下游伺服器溝通有誤
Nginx ↔ PHP-FPM 失聯或超時
503
Service Unavailable
伺服器暫時停用
維護、更新中或資源爆掉
504
Gateway Timeout
等太久沒收到回應
後端處理太慢或卡住
延伸閱讀:什麼是 404 錯誤?網站出現找不到頁面的原因與處理方式總整理!
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? 看是不是哪段卡住。
常用指令
sudo tail -n 200 /var/log/nginx/error.log # 看錯誤日誌
curl -I http://127.0.0.1:9000 # 測試後端服務是否回應
systemctl status php-fpm # 看 PHP 是否活著
pm2 logs app # Node.js 的 log
htop 或 free -m # 看系統資源
判斷小流程圖
發現 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 錯誤?
有可能是某段 API 掛掉,或特定功能出錯。
Q2. 為什麼我在本機測試都正常,上線卻出錯?
很可能是部署設定不同,或是 DNS 還沒生效。
Q3. Cloudflare 顯示 502,但我主機沒壞啊?
建議檢查一下是不是防火牆擋到 Cloudflare 的 IP。
Q4. 502 和 504 有什麼差別?
502 是「拿到錯的回應」,504 是「等太久沒回應」。排查方向會不太一樣喔。
補充:錯誤頁面、自訂設定範例
這邊整理幾段 Nginx 設定範例,讓你快速套用:
PHP-FPM + Nginx 設定
location ~ \.php$ { 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 錯誤頁
error_page 502 /custom_502.html;location = /custom_502.html { root /var/www/errors; internal;}
記得可以放一個溫柔的說明、回首頁連結,甚至放個小報修表單唷~
結語:別讓錯誤頁嚇跑你的用戶!
雖然 502 錯誤看起來只是一個壞掉的頁面,但背後可能藏著設定、資源、架構甚至程式的問題。
只要我們掌握檢查技巧、建立良好的監控與備援機制,再加上一點點細心,就能讓網站更穩、更快、更可靠。
如果你是網站管理者、工程師、或正在經營線上服務,希望這篇文章能成為你面對 502 時的安心指南!