自 2010 年以來,CDN 服務 Cloudflare 已協助各種 Web 活動進一步開發更好的性能和安全性。與傳統的內容交付網絡相比,Cloudflare 不僅作為靜態內容的主要支持,而且作為反向代理服務器,充當不一致的與網絡服務器交換。因此,緩存的內容并不完全由網站管理員控制;但是,不需要更改源代碼,因為您只需要指示 DNS 服務器使用該服務。
使用強大的內容交付網絡時,經常會出現一個常見錯誤:“錯誤 522:連接超時”。也許這也稱為“Cloudflare 錯誤”,但該問題與 Web 服務的性能沒有直接關系。本指南解釋了什么是“錯誤 522”及其原因,以及如何修復它。
什么是錯誤 522?
如果您的計算機系統以我們簡單的語言說出錯誤 522,它會聲明“我們無法連接到源 Web 服務器”。與 Web 上的其他錯誤頁面類似,522 消息是 HTTP 狀態消息之一,其中“5”表示服務器錯誤,后跟“2”表示連接到 Cloudflare 時發生服務器錯誤。代碼 522 說明了“連接超時”,只要 Web 服務器和 Cloudflare 之間的 TCP 握手失敗,就會發生這種情況。
握手是創建連接的基礎——無論 CDN 服務獲得什么,一個需要與服務器協商的客戶端請求都變得至關重要。由于 Cloudflare 的廣受歡迎和使用,522 連接超時錯誤現在是標準的瀏覽器錯誤消息。
導致 Cloudflare 錯誤 522 的原因是什么?
與人們所懷疑的不同,發生 522 錯誤的原因不是 Cloudflare 崩潰,而是服務器端問題。然而,同樣地,由于存在大量可比較的 HTTP 錯誤,因此并不總是可以直截了當地說出錯誤的來源。在 CDN 服務和到達的 Web 服務器之間建立 TCP 連接時,各種情況都可能導致超時。出現連接超時錯誤 522 消息的原因有多種:
1. 離線網絡服務器
由于訪問的 Web 服務器,經常顯示 HTTP 錯誤 522。由于 Web 服務器通過 Web 與 Cloudflare 通信,因此顯然不可能進行交換。
2. 原服務器過載
Cloudflare 代表任務的主服務器投入了大量精力。對于來自用戶瀏覽器的特定請求,例如動態內容,CDN 服務器應該聯系第一臺服務器。同樣,與沒有 CDN 的常規服務器一樣,如果同時處理大量請求,則在構建 TCP 時可能會導致負載過重和超時。
3. 防火墻阻止請求
如果主服務器與其防火墻相關聯,則可能會導致 Cloudflare 錯誤。默認情況下,該服務應該允許演示服務的 IP 位置。但是,在某些情況下,這些地址會被偶然或隨意地阻止。因此,無法建立連接。不正確的設置同樣可能導致數據包從原始主機網絡中被刪除。
4. DNS設置錯誤
主服務器的 IP 地址用于運行 DNS 服務器。對此地址的修改應發送到 CDN,以便服務器可以繼續運行。使用了錯誤的 DNS 設置,因為各種網站因此為托管站點分配了新的網址,并且沒有將它們發送到 Cloudflare。
5. 不正確的路由
Cloudflare 應該在遙遠的網絡范圍內工作,以保證網站的性能得到適當增強。由 IP 路由處理并通過所包含的不同網絡進一步發送的數據包路徑是內容交付系統的基本部分。如果第一臺服務器和 Cloudflare 之間存在不一致,這通常會導致連接超時消息。
6. 在服務器端禁用 Keepalive 消息
Cloudflare 利用“保持活動”標題通道來跟上在更長的時間范圍內建立連接,進一步提高性能。但是,在任何情況下,如果 HTTP 消息選項顯示在 Web 服務器上并被禁用,它將導致連接設置失敗,并帶來 522 錯誤。由于大多數普通 Web 服務器默認允許保持連接,因此這是錯誤的罕見原因,并且通常與網站管理員的設置錯誤有關。
如何修復錯誤 522?
如果您負責一個遇到錯誤 522 的 Web 項目,您應該立即調查原因。在檢查上述原因之一是否導致問題之前,最好驗證主 Web 服務器是否正在響應 HTTP 請求。沒有這個,Cloudflare 和服務器之間的通信是不可想象的,不管所有設置是否正確。如果此快速檢查確認 CDN 服務可以按預期訪問服務器的資源,則需要進行更徹底的測試以確定錯誤原因。
您將在下面找到一些解決 522 錯誤的有希望的解決方案;
1.優化服務器限制
Web 服務器通常會超載,這是錯誤 522 的主要原因。預測某個隨機時間的訪問者數量是不可想象的。不規則的負載峰值意味著服務器無法處理 HTTP 請求,因此您應該通過分析注意 Web 項目的流量改善。
軟件。每天評估信息以識別瓶頸并增強托管系統的硬件設置。例如,適應性強的云托管安排使您能夠精確地擴展資源,因此您可以理想地響應由一天、一周或季節引起的波動。
2.檢查IP過濾
要查看您的 Web 服務器是否阻止 Cloudflare 的 IP 地址,您需要檢查適當的防火墻設置和其他過濾應用程序,例如表格。Web 地址同樣可以在 .htaccess 文檔中過濾,因此您還應該檢查它們是否有被阻止的 IP。CDN 服務器提供商使用可在官方網站上找到的地址列表。如果其中一個地址在具有類似功能的命名項目或工具中受到保護,則必須打開它以解決錯誤 522。應用程序自動阻止 IP 地址是很常見的,因此您無需留任何機會并將 Cloudflare 地址列入白名單。
3. 自定義 DNS/IP 設置
假設您的網站依賴于 Web 服務器地址的典型差異,它依賴于您將更改的 IP 轉發到 Cloudflare。提供商會自動將這些進展報告給他們的 DNS 服務器。如果發生錯誤 522,最好調查您的域的 IP 設置。登錄到 Web 項目的右側管理部分并記下 Web 服務器的 IPv4 和 IPv6 地址。然后,此時,切換到 Cloudflare 設置菜單并選擇導致錯誤的區域。選擇菜單選項“DNS”,然后在相應的 DNS 記錄中輸入記錄的網址。
4.激活“keepalive”消息
如果 Cloudflare 錯誤是由于 HTTP 標頭設置不正確造成的,則修復起來有些簡單。如果關閉“keepalive”或發出的請求較少,您可以在 Web 服務器的不同設置文件中解決此問題,例如,在 Apache 服務器的 httpd.conf 中。在任何情況下,您都擁有合法權利,而共享托管計劃通常不是這種情況。在這種情況下,如果您提供的所選軟件包的“keepalive”設置仍然存在,您可以選擇聯系供應商。
5. 聯系 Cloudflare 支持
如果 522 錯誤是由流量路由問題引起的,請聯系 Cloudflare 支持。提出一個提及問題的票,確定您之前檢查過哪個區域的錯誤。CDN 提供商推薦使用 MTR 或 traceroute 等工具來獲取有關您的 Web 服務器和 Cloudflare IP 之間當前包交換的信息。您可以將結果以文本或圖片的形式附加到您的工單上,以加快解決問題的過程。
瀏覽器用戶可以對連接超時錯誤 522 消息執行什么操作?
HTTP 錯誤 522 只是一個服務器端問題,如上面的可能原因列表所示。如果您瀏覽互聯網并在訪問網站時遇到 522 錯誤,這不是由錯誤的插件或互聯網連接中斷引起的。這也可能意味著您無法直接處理該問題。如果您對網站不滿意,建議您稍等片刻,稍后再訪問。一般來說,Cloudflare 已經解決了與 Web 服務器的連接問題,并且網站應該可以正常工作。
您也可以聯系負責的網站管理員 - 主要是在幾次嘗試后網站無法運行并顯示相同的 Cloudflare 錯誤時。您可能會獲得重要的背景數據,或者會在網站可以再次訪問時獲得狀態。此外,同樣可以想象,供應商不知道這個問題,所以無疑值得聯系他們。
最后的想法
總而言之,Cloudflare 錯誤 522 或“連接超時”是用戶在瀏覽時經常遇到的標準錯誤之一。此錯誤主要發生在服務器響應回答要求的時間超過預定時間時。此問題的一些常見原因是缺少內存或 CPU、防火墻阻止 IP 地址以及脫機 KeepAlive 標頭。遵循主要的三個步驟是理想的;檢查你的連接和記憶。確定 Cloudflare 的 DNS 設置并更改您的服務器設置。