如何解決 WordPress 出現 502 Bad Gateway Error 的問題?

當你遇到 502 Bad Gateway 錯誤,且無法登入/訪問 WordPress 網站時,不必擔心,502 Bad Gateway 是可以被修復的,透過下面的教學,會逐步幫助你排除 502 Bad Gateway 產生的原因與修復。

用 AI 摘要這篇文章:

502 Bad Gateway 代表你的伺服器(通常是 Nginx)向後端 PHP-FPM 發出了請求,但收到了無效或完全沒有回應,導致網站無法載入。超過八成的 WordPress 502 錯誤可以在 30 分鐘內自行排除。

如果你正在處理其他 HTTP 5xx 錯誤,這幾篇也能幫上忙:

502 Bad Gateway 是什麼?

HTTP 502 屬於 5xx 伺服器錯誤家族,定義明確:作為閘道器或反向代理的伺服器,從上游伺服器收到了無效回應。

用白話來說:你的瀏覽器發出請求,經過 DNS 解析後抵達主機上的 Nginx(反向代理層),Nginx 再把 PHP 請求轉給 PHP-FPM 處理。當 PHP-FPM 當掉了、回應超時了、或者傳回格式錯誤的資料,Nginx 就會回報 502。

任何一個環節出問題都可能觸發 502,這也是為什麼成因很多。但只要理解「瀏覽器 → Nginx → PHP-FPM → WordPress」這條鏈路,排查就會有方向。

常見的 502 錯誤訊息

502 的錯誤頁面會根據瀏覽器、伺服器和是否有使用 CDN 而不同。辨識這些差異能幫你快速鎖定問題源頭。

瀏覽器顯示的 502 訊息

  • Chrome:「502. That’s an error. The server encountered a temporary error and could not complete your request.」
  • Firefox:「502 Bad Gateway」或「The proxy server received an invalid response from an upstream server.」
  • Safari:「Safari Can’t Open the Page」搭配 502 相關說明

CDN 服務商顯示的 502 訊息

  • Cloudflare:「502 Bad Gateway — The web server reported a bad gateway error.」帶有 Cloudflare 品牌識別頁面
  • Sucuri / 其他 CDN:「502 Proxy Error」或「HTTP 502」

伺服器環境的 502 訊息

  • Nginx:「502 Bad Gateway」配合 nginx/版本號的頁尾
  • Apache:「HTTP Error 502 – Bad Gateway」
  • 通用:Error 502、502 Server Error、502 Service Temporarily Overloaded

如果錯誤頁面帶有 Cloudflare 標誌,問題多半在 CDN 層;如果看到 nginx 頁尾,問題就比較可能在你的主機伺服器端。

HTTP 5xx 錯誤對照表

5xx 家族裡的四個常見成員,定義和常見原因各不相同。搞懂差異後,你就能更精準地判斷問題方向。

錯誤代碼 名稱 含義 常見原因
500 Internal Server Error 伺服器遭遇未預期的錯誤 .htaccess 語法錯誤、PHP 程式碼異常、檔案權限不當
502 Bad Gateway 閘道器從上游收到無效回應 PHP-FPM 當機、伺服器資源耗盡、上游未回應
503 Service Unavailable 伺服器暫時無法處理請求 伺服器過載、維護模式、流量暴增
504 Gateway Timeout 閘道器等待上游回應超時 PHP 執行時間過長、資料庫查詢卡住、外部 API 逾時

簡單區分:500 是伺服器自己出錯;502 是伺服器之間的溝通出問題;503 是伺服器太忙暫時不接單;504 是等太久而放棄。如果你的網站也碰到資料庫連線錯誤,也可以參考我們的另一篇教學。

WordPress 出現 502 的 7 大原因

了解常見成因,能幫你更快找到問題癥結,而不是盲目嘗試。

原因 1:伺服器資源耗盡

當主機 CPU 使用率衝到 100% 或記憶體被吃光時,PHP-FPM 就無法處理新請求,Nginx 等不到回應就會回傳 502。這在低價共享主機上特別容易發生,一台上百個網站共用資源,任何一個流量暴衝都可能拖累其他人。

原因 2:PHP-FPM 當機或設定不當

PHP-FPM 是 WordPress 背後的執行引擎。如果進程數設定太少(pm.max_children 過低),或者每個進程分配的記憶體不夠,在流量高峰時就會出現排隊等待,嚴重時直接 502。

原因 3:外掛衝突或程式碼錯誤

快取類外掛安全類外掛、或者大量查詢資料庫的外掛,效能問題更容易把伺服器資源吃光。安裝新外掛或更新外掛版本後突然出現 502,是最典型的症狀。

原因 4:CDN 服務設定問題

如果你使用了 Cloudflare 等 CDN 服務,多了一層代理就多了一個出問題的環節。CDN 自身的伺服器故障、DNS 設定不正確、或 CDN 無法正確連線到你的主機,都可能觸發 502。你也可以搭配Cloudflare DNS 的設定一起檢查。

原因 5:PHP 版本不相容

WordPress 和許多外掛對 PHP 版本有最低要求。主機還在跑 PHP 7.x 而某個外掛需要 PHP 8.x,就可能產生致命錯誤。反過來說,升級 PHP 後某些老舊外掛沒跟上,也會出問題。這類狀況和WordPress 更新失敗的情境類似,都需要從版本相容性著手。

原因 6:Nginx 或 Apache 設定錯誤

如果你修改過 Nginx 的 fastcgi_params 或 Apache 的 VirtualHost 設定,語法錯誤可能導致反向代理無法正確轉發請求。這類問題通常在修改設定後立即出現。碰到WordPress 無法正確顯示更新內容時,有時也跟伺服器設定有關。

原因 7:虛擬主機商基礎設施故障

有時問題根本不在你這邊。主機商進行伺服器維護、硬體故障、機房斷電等情況,都可能讓網站出現 502。這時你只需要等待主機商修復,但前提是要判斷出問題在他們身上。

修復 WordPress 502 的 8 個方法

以下方法按照從簡單到複雜的順序排列。動手之前,請先備份網站,可以使用 UpdraftPlus 等備份外掛,確保操作過程中可以隨時恢復。

方法 1:強制重新整理網頁

502 可能只是伺服器短暫忙碌,過幾秒就好了,但瀏覽器把錯誤頁面快取了起來。強制重新整理可以繞過本機快取,重新向伺服器發出請求。

  • Windows / Linux:按下 Ctrl + F5Ctrl + Shift + R
  • Mac:按下 Cmd + Shift + R

如果重新整理後網站恢復正常,問題已經解決。如果還是不行,繼續往下。

方法 2:清除瀏覽器快取與 Cookie

在 Chrome 或 Firefox 中按下 Ctrl + Shift + Delete(Mac 是 Cmd + Shift + Delete),開啟「清除瀏覽資料」視窗。選擇「所有時間」範圍,勾選「快取圖片和檔案」以及「Cookie 和其他網站資料」,然後清除。

你也可以用無痕模式開啟網站測試。如果無痕模式能正常顯示,問題就確定是瀏覽器快取造成的。

方法 3:透過 FTP 停用所有外掛

如果你還能進入 WordPress 後台,直接到「外掛」頁面,勾選所有外掛後選擇「停用」,然後重新整理前台看 502 是否消失。

如果連後台都進不去,就需要透過 FTP 操作。你可以使用 Filester 等 WordPress 檔案管理外掛(前提是之前有安裝),或者直接用 FTP 客戶端(像是 FileZilla)連上伺服器。連上後找到 wp-content/plugins 資料夾,把它重新命名為 plugins-old。WordPress 找不到外掛資料夾後,所有外掛會被自動停用。

重新整理網站,如果 502 消失了,就把資料夾名稱改回 plugins,然後在後台逐一重新啟用外掛,找出肇事者。

方法 4:切換至 WordPress 預設主題

如果停用所有外掛後 502 仍然存在,問題可能出在主題上。特別是使用重度客製化的 付費主題時,主題本身的程式碼錯誤也可能導致 PHP 崩潰。

同樣透過 FTP,進入 wp-content/themes 資料夾,把目前使用的主題資料夾重新命名(例如從 my-theme 改成 my-theme-old)。WordPress 找不到原本的主題時,會自動切換到 Twenty Twenty-Four 等內建主題。如果 502 因此消失,問題就出在主題上。

方法 5:暫時關閉 CDN 服務

如果你使用了 Cloudflare,最簡單的方式是開啟「開發者模式」(Development Mode),這會暫時繞過 CDN 快取。在 Cloudflare 控制台的「快取」→「設定」裡可以找到這個選項。

或者把 Cloudflare 的 DNS 記錄從橘色雲朵(Proxied)切換成灰色雲朵(DNS Only),所有流量就會直接指向你的主機。如果繞過 CDN 後網站正常了,就需要進一步檢查 Cloudflare 設定。如果你同時使用了 Cloudflare Turnstile 等功能,也要確認設定沒有衝突。

方法 6:檢查 PHP 版本與記憶體限制

透過 WordPress 後台的「工具」→「網站狀態」→「資訊」來查看目前的 PHP 版本和記憶體限制。WordPress 官方建議使用 PHP 8.x,並將記憶體限制設為至少 256MB。

如果你的主機控制台有提供 PHP 設定功能(cPanel 的 MultiPHP Manager、SiteGround 的 Site Tools 等),可以直接在那邊調整 PHP 版本和 memory_limit。你也可以在 wp-config.php 中加入以下程式碼來提高記憶體限制:

define('WP_MEMORY_LIMIT', '256M');

方法 7:查看伺服器錯誤日誌

如果前面的方法都試過了還是沒用,伺服器的錯誤日誌就像飛機的黑盒子,能幫你找到問題的真正原因。

Nginx 環境的錯誤日誌通常在:

  • /var/log/nginx/error.log
  • /var/log/nginx/你的網域名稱.error.log

透過 SSH 登入伺服器後,用 tail -n 50 /var/log/nginx/error.log 查看最近的 50 筆錯誤。

Apache 環境的錯誤日誌路徑因作業系統而異:

  • Ubuntu / Debian/var/log/apache2/error.log
  • CentOS / RHEL/var/log/httpd/error_log
  • cPanel 主機:在 cPanel 控制台的「Metrics」→「Errors」頁面直接查看

以下是幾個與 502 相關的關鍵日誌訊息:

  • recv() failed (104: Connection reset by peer):PHP-FPM 進程崩潰,通常是記憶體不足或程式碼錯誤
  • upstream prematurely closed connection:PHP-FPM 在回應完成前斷開連線
  • connect() failed (111: Connection refused):PHP-FPM 服務根本沒在運作,可能已經當機
  • PHP Fatal error: Allowed memory size exhausted:PHP 記憶體限制被吃光

看到這些訊息後對照前面的 7 大原因,就能快速鎖定問題環節。如果你使用的是 SiteGroundBluehost 等主流主機商,控制台通常也提供圖形化的日誌查看工具。

方法 8:聯繫虛擬主機商客服

當所有自助方法都試過了,問題還是無法解決,就該找主機商了。好的主機商都有 24/7 技術支援,可以直接查看伺服器端日誌,幫你找出你看不到的問題。

聯繫客服之前,先準備好:502 開始出現的時間、之前是否做了任何變更(更新外掛、修改設定等)、已經嘗試過哪些排除方法。你也可以先到主機商的官方狀態頁面看看是否有公告維護或故障資訊。

如何預防 502 再次發生

修好一次 502 不難,難的是讓它不再出現。以下是幾個經過實戰驗證的預防措施。

選擇穩定的 WordPress 主機商

這是最根本的解法。便宜的低品質主機是 502 的溫床:資源限制嚴格、伺服器超賣、技術支援慢。Bluehost 是 WordPress 官方推薦的主機商之一,價格合理且穩定性不錯。如果預算充裕,Kinsta 提供的 Google Cloud Platform 代管服務在效能和穩定性上都非常出色。A2 Hosting 在速度方面也有不錯的口碑。想全面比較各家方案,可以參考我們的 WordPress 虛擬主機推薦懶人包。

定期更新 WordPress 核心與外掛

過時的版本除了有安全風險,也可能與新版 PHP 不相容而導致致命錯誤。養成每週檢查更新的習慣,更新前先備份。

使用網站監控工具

你不可能 24 小時盯著自己的網站。透過 WP Umbrella 這類監控工具,當網站出現 502 或任何異常時,你會在第一時間收到通知。越早發現問題,就越能縮短網站無法訪問的時間。

最佳化網站效能

網站效能不佳會加重伺服器負擔,間接增加 502 的風險。使用 WP Rocket 等快取外掛來減少動態請求量;啟用 GZIP 壓縮來減少傳輸量;將圖片轉換為 WebP 格式來降低載入成本。也可以參考我們整理的WordPress 網站速度最佳化教學6 個實用加速技巧。如果你的TTFB 等待時間過長,也代表伺服器回應速度需要改善。

精簡外掛使用

安裝了 30 個外掛的網站,衝突機率遠高於只裝 10 個的網站。定期審視安裝的外掛,把不再使用的停用並刪除,把功能重複的合併。不必要的留言功能也可以考慮關閉,減少伺服器處理負擔。

正確設定 CDN 與 DNS

CDN 用得好能大幅提升網站速度,設定不當卻會造成 502。如果使用 Cloudflare,確保 DNS 記錄設定正確、SSL 模式選擇 Full Strict,並定期清除快取。預防 502 的核心邏輯就是讓 WordPress 環境保持健康、資源充足、設定正確。加強WordPress 安全性也是保護網站穩定運作的重要一環。

502 Bad Gateway 常見問答 FAQ

502 Bad Gateway 是什麼意思?

502 Bad Gateway 是 HTTP 狀態碼,代表閘道器或代理伺服器從上游伺服器接收到了無效的回應。在 WordPress 環境中,通常表示 Nginx 無法從 PHP-FPM 取得正確回應。

502 錯誤會影響 SEO 排名嗎?

短時間的 502(幾分鐘到半小時)對 SEO 影響非常有限,Google 爬蟲會自動重試。但如果 502 持續好幾個小時甚至好幾天,Google 可能會把頁面暫時從索引中移除。網站載入速度和可用性本來就是排名因素的一部分,搭配 On-page SEO 最佳化策略一起維護,能讓網站更加穩健。

502 錯誤通常多久會自動恢復?

完全取決於觸發原因。如果是主機商基礎設施故障,通常幾分鐘到幾小時會修復。如果是暫時過載,等到流量降下來就會恢復。但如果是外掛衝突或設定錯誤造成的,不會自動恢復,需要手動排除。

使用 Cloudflare 時出現 502 該怎麼辦?

先確認 502 頁面是否帶有 Cloudflare 標誌。如果是,問題可能出在 Cloudflare 無法連線到你的主機。暫時把 DNS 記錄從 Proxied(橘色雲朵)切換成 DNS Only(灰色雲朵),繞過 Cloudflare 直接訪問主機,看看問題是否依然存在。這能幫你區分是 Cloudflare 的問題還是主機的問題。

免費主機常出現 502 該怎麼辦?

免費主機的資源限制非常嚴格,稍微多一點流量就容易觸發 502。如果你的網站有一定的流量或對穩定性有要求,建議升級到像 Bluehost 這類入門付費主機,穩定性和資源都會好上好幾倍。

如何分辨 502 是主機問題還是網站問題?

幾個快速判斷方法:檢查主機商的官方狀態頁面看是否有故障公告;如果你有其他網站也放在同一家主機商,看看它們是否也 502;嘗試從不同網路環境和裝置訪問。如果同主機的所有網站都掛了,問題就在主機商;如果只有你的一個網站出問題,就要從網站本身找原因。

下一步:3 個建議

  1. 按照上述 8 個方法逐步排查:從強制重新整理開始,依序嘗試到聯繫主機商。多數 502 可以在前 4 個方法內解決。判斷標準:如果某一步做完後網站恢復正常,停止往下,找出觸發原因(是哪個外掛?哪個設定?)。
  2. 設定網站監控:安裝 WP Umbrella 或類似工具,設定 Email 或 Slack 通知。這樣即使 502 在凌晨發生,你也能第一時間知道。預期結果:網站異常時 5 分鐘內收到通知。
  3. 評估是否需要升級主機:如果 502 每個月出現超過兩次,而且你的網站每日訪客已經破千,那就是該認真考慮換主機的時候了。可以將網站轉移到更好的虛擬主機商,這不只解決 502,也能提升整體速度和穩定性。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 678

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


目錄
Share to...