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 時的安心指南!

黑玉价格一般多少钱一克,探讨其价格是否昂贵
能量跃迁者