解決 Error 521:檢查服務(wù)器防護與超時設(shè)置

如果你的網(wǎng)站接入了 Cloudflare,然后時不時跳出 “Error 521 – Web Server Is Down”,那說明 Cloudflare 連不上你的源站服務(wù)器。這個報錯看起來像是服務(wù)器宕機,其實更多時候是配置問題。

圖片[1]-解決 Error 521:檢查服務(wù)器防護與超時設(shè)置

這篇文章就來講講,Error 521 為什么會反復出現(xiàn),以及哪些防護設(shè)置、超時設(shè)置可能是幕后“元兇”。

什么是 Error 521?

Error 521 是 Cloudflare 返回的狀態(tài)碼,意思是“我正常,但你的服務(wù)器沒響應(yīng)”。它的成因有幾個可能:

Cloudflare 能正常工作
源站服務(wù)器沒有回應(yīng)請求
防火墻把 Cloudflare 攔住了
服務(wù)器資源耗盡或處理超時

所以關(guān)鍵不是 Cloudflare 出問題,而是源站讓它“吃了閉門羹”。

常見導致 521 報錯的防護設(shè)置問題

防火墻攔截了 Cloudflare 的請求

很多服務(wù)器都會裝防火墻,比如 iptables、CSF、UFW 等,這些工具如果沒有添加 Cloudflare 的 IP 白名單,就會把它當成“可疑請求”。

解決方法是:前往 Cloudflare 官方頁面,獲取完整的 IP 列表,然后添加到服務(wù)器防火墻白名單中。登錄你的服務(wù)器終端(SSH)

圖片[2]-解決 Error 521:檢查服務(wù)器防護與超時設(shè)置

輸入以下命令添加 Cloudflare IP 白名單(部分示例):

sudo ufw allow from 173.245.48.0/20
sudo ufw allow from 103.21.244.0/22
sudo ufw allow from 103.22.200.0/22
sudo ufw allow from 103.31.4.0/22
  • 重復上面命令,直到全部 Cloudflare IP 段都添加完。
  • 最后執(zhí)行:
sudo ufw reload
  • 完成后,再通過 Cloudflare 訪問你的網(wǎng)站,看是否還出現(xiàn) Error 521。
  • 所有 IP 段可從 Cloudflare 官方獲取。

例如在 Ubuntu 上使用 UFW:

sudo ufw allow from 173.245.48.0/20
sudo ufw allow from 103.21.244.0/22

你需要添加所有 Cloudflare 的網(wǎng)段才能確保訪問正常。

Web 應(yīng)用防火墻(WAF)誤判

圖片[3]-解決 Error 521:檢查服務(wù)器防護與超時設(shè)置

如果服務(wù)器啟用了 Imunify360、ModSecurity、BitNinja 等防護系統(tǒng),它們可能因為請求頻率、Header 格式或 IP 行為,誤判 Cloudflare 的請求為攻擊并封鎖。

建議查看攔截日志,將 Cloudflare 的 IP 和 UA 加入白名單,必要時降低防護敏感度。

檢查 PHP、Nginx 和 Apache 的超時設(shè)置

服務(wù)器響應(yīng)超時也會導致 Cloudflare 報 521。你可以通過以下方式調(diào)整設(shè)置:

PHP 設(shè)置(推薦 max_execution_time 不小于 300)

  1. 打開 php.ini 文件(路徑因服務(wù)器不同而異):
sudo nano /etc/php/8.1/fpm/php.ini
  1. 查找以下參數(shù),并進行調(diào)整:
max_execution_time = 300
memory_limit = 512M
  1. 保存并退出(Ctrl+O,回車,Ctrl+X)
  2. 重啟 PHP:
sudo systemctl restart php8.1-fpm

Nginx 設(shè)置超時

  1. 編輯 nginx 配置文件:
sudo nano /etc/nginx/nginx.conf
  1. 在 http 區(qū)塊中添加:
proxy_read_timeout 300;
fastcgi_read_timeout 300;
  1. 保存后執(zhí)行:
sudo nginx -t  # 檢查配置是否正確
sudo systemctl reload nginx

Apache 設(shè)置超時(如使用的是 Apache)

  1. 編輯配置文件:
sudo nano /etc/apache2/apache2.conf
  1. 添加或修改:
Timeout 300
ProxyTimeout 300
  1. 保存并重啟:
sudo systemctl restart apache2

MySQL 數(shù)據(jù)庫優(yōu)化建議

如果你的數(shù)據(jù)庫處理慢、負載高,也會拖慢整個網(wǎng)站響應(yīng)。

推薦操作:

  1. 安裝 mysqltuner 工具:
sudo apt install mysqltuner
sudo mysqltuner
  1. 根據(jù)提示優(yōu)化:
    • 減少不必要的查詢
    • 添加缺失索引
    • 增加緩存參數(shù)(如 query_cache_size)
  2. 查看慢查詢?nèi)罩荆?/li>
sudo nano /etc/mysql/my.cnf

確保啟用了以下內(nèi)容:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

重啟數(shù)據(jù)庫后,檢查日志分析瓶頸。

以上每一項操作都是實際可以在服務(wù)器終端中完成的。如果你的服務(wù)器使用的是面板(如 cPanel、寶塔),也可以在圖形界面中找到相應(yīng)設(shè)置入口,手動調(diào)整。

圖片[4]-解決 Error 521:檢查服務(wù)器防護與超時設(shè)置

源站抗壓能力不足

輕量服務(wù)器或資源緊張的 VPS 在訪問高峰時可能資源耗盡,導致服務(wù)掛起。這種情況下 Cloudflare 自然連不上源站。

建議使用緩存插件(如 WP Rocket、LiteSpeed Cache)、開啟 Cloudflare 緩存、減輕后臺插件負擔,或直接升級主機配置。

Cloudflare 端優(yōu)化建議

雖然報錯是源站問題,但 Cloudflare 也能起到緩解作用:

開啟“緩存所有內(nèi)容”規(guī)則
為靜態(tài)頁面設(shè)置較長的 TTL
對不常變動的頁面使用“邊緣緩存”

這能有效減少 Cloudflare 對源站的請求壓力,讓服務(wù)器喘口氣。

總結(jié)

Error 521 頻繁出現(xiàn),往往是源站配置不合理。從防火墻、WAF、超時設(shè)置和服務(wù)器負載幾個方面排查,大多數(shù)問題都能解決。如果實在不想改動太多,也可以通過優(yōu)化緩存和靜態(tài)資源加速,讓 Cloudflare 多處理一些內(nèi)容,源站就不容易斷線。這樣你的網(wǎng)站運行就更穩(wěn)定了。


聯(lián)系我們
教程看不懂?聯(lián)系我們?yōu)槟赓M解答!免費助力個人,小企站點!
客服微信
客服微信
電話:020-2206-9892
QQ咨詢:1025174874
郵件:info@361sale.com
工作時間:周一至周五,9:30-18:30,節(jié)假日休息
? 轉(zhuǎn)載聲明
本文作者:小Lin
THE END
喜歡就支持一下吧
點贊813 分享
評論 搶沙發(fā)

請登錄后發(fā)表評論

    暫無評論內(nèi)容