- 錯誤型別:
- 伺服器錯誤
- 錯誤名稱:
- Cloudflare 520错误
- 英文名稱:
- Error 520
- 錯誤描述:
- 当您网站的访问者在他们的浏览器中看到Error 520时,这意味着Cloudflare正在发送消息,因为您的服务器返回了一个空的、未知的或意外的响应。
當您網站的訪問者在他們的瀏覽器中看到Error 520時,這意味著Cloudflare正在傳送訊息,因為您的伺服器返回了一個空的、未知的或意外的響應。
Error 520可以通過首先進行故障排除來找到原因,然後按照這些步驟進行修復。
對Error 520進行故障排除
由於Error 520是由於您的伺服器出現問題而出現的,您可以通過檢視錯誤日誌來解決該問題。
網站Error 520的示例
禁用Cloudflare
在開始故障排除之前,有必要禁用Cloudflare。這有助於隔離問題,確保可以在不影響Cloudflare的情況下複製問題。
第1步:首先登入Cloudflare。然後,在列表中找到您的站點並單擊它。
單擊您列出的站點
第2步:接下來,單擊DNS選項卡,然後單擊表中Proxy status部分下的橙色雲。您會知道Cloudflare已被禁用,因為雲會變成灰色。
單擊橙色雲以禁用Cloudflare
暫停Cloudflare
或者,您可以選擇在登入後暫停Cloudflare。
第1步:從列表中單擊您連線的站點。
登入後從列表中單擊您的站點
第2步:然後,向下滾動,直到在側欄中看到“Advanced Actions”部分。單擊在站點上Pause Cloudflare on Site連結。
單擊連結以暫停Cloudflare
第3步:頁面上將顯示一個彈出視窗,要求您確認要暫停Cloudflare。繼續並單擊“Confirm”按鈕。
單擊確認以暫停Cloudflare
進入開發模式
如果您不想暫停或禁用Cloudflare,您可以保持執行,但將其置於開發模式,以便您仍然可以對Error 520進行故障排除。
第1步:登入Cloudflare後,單擊頁面頂部的Caching選項卡。
轉到快取選項卡
第2步:接下來,向下滾動到“Development Mode”部分,然後單擊“Off”切換按鈕,切換至“On”。
通過單擊切換按鈕開啟開發模式
檢查伺服器的錯誤日誌
現在您已禁用、暫停或將Cloudflare置於開發模式,您可以通過檢查伺服器的錯誤日誌來解決Error 520。
查詢錯誤日誌的方式因主機而異,因此如果您不確定在哪裡可以找到錯誤日誌,請與您的主機聯絡。
如果您的託管服務提供商使用cPanel,您可以按照以下步驟操作。
第1步:登入cPanel並在儀表板中,轉到“Metrics”部分。然後,單擊Errors按鈕。
單擊Metrics下的Errors按鈕
第2步:錯誤日誌頁面按時間倒序顯示錯誤以及最多300條最新訊息。如果您或您的主機調整了設定,錯誤日誌可能會顯示更多訊息。
檢視cPanel的錯誤日誌以解決Error 520
使用寶塔面板檢查Error 520日誌
如果您使用寶塔面板管理WordPress網站,您可以按照以下步驟檢查您的錯誤日誌。
第1步:登入寶塔面板並單擊左側選單中的安全管理-Web日誌管理。
寶塔日誌管理
第2步:下載nginx_error.log檔案,使用文字編輯器開啟將會會顯示錯誤日誌。如果您沒有看到任何列出的內容,那是因為您的網站上沒有發生錯誤。
如何解釋錯誤日誌
錯誤日誌中的每條訊息都有一個結構。如果您理解它,您就可以解釋出現的錯誤訊息。
[Fri Oct 11 17:00:30 2019] [error] [client 123.4.56.7] error description: /path/to/file/with/error
訊息的日期和時間首先列出,然後是LogLevel指令,它告訴您訊息的嚴重性級別。
接下來是客戶端的IP地址。這就是讓這個問題出現的人。
最後,將顯示實際訊息,其中可能包含受影響檔案的路徑。
以下是可能在錯誤日誌訊息中列出的LogLevel嚴重性級別:
- Emerg – 這讓您知道問題是緊急情況並且伺服器不可用。
- Alert – 如果您看到此級別,應立即採取行動。
- Crit – 這表示危急情況。
- Error– 這意味著發生了錯誤。
- Warn– 具有此級別的訊息是關於需要您注意但不重要的問題的警告。
- Notice– 這意味著您的伺服器是正常的,但有關於您的伺服器可用狀況的重要詳細資訊。
- Info– 此級別提供一般資訊。
- Debug– 這些訊息包含啟用除錯時的詳細資訊。
使用cURL命令對錯誤520進行故障排除
您還可以使用cURL命令通過針對源伺服器進行測試來解決錯誤520。
curl -vso /dev/null --user-agent "Mozilla 5.0" -H "Host: your-site.com" http://123.45.6.789/wp-login.php
請務必將“you-site.com”更改為您的實際域。您還需要使用您站點的IP地址更新“123.45.6.789”。如果您更改了登入頁面,您還應該更改“wp-login.php”部分。
成功的響應標頭類似於以下示例:
* Hostname was NOT found in DNS cache * Trying 123.45.6.789... * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0) > GET /login HTTP/1.1 > User-Agent: Mozilla 5.0 > Accept: */* > Host: your-site.com > < HTTP/1.1 200 OK < Content-Type: text/html < Date: Day, DD, Month Year Hour:Minute:Second Timezone { [12345 bytes data] * Connection #0 to host 123.45.6.789 left intact
如果您看到類似的內容,則表示一切正常,並且訪問該站點時沒有出現錯誤520響應。
另一方面,如果您看到類似於以下示例的響應標頭,則表示在Cloudflare處於活動狀態時發生了520錯誤:
* Hostname was NOT found in DNS cache * Trying 123.45.6.789... * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0) > GET /login HTTP/1.1 > User-Agent: Mozilla 5.0 > Accept: */* > Host: your-site.com > * Empty reply from server * Connection #0 to host 123.45.6.789 left intact
如何生成HAR檔案
HAR是一個HTTP存檔檔案。它包含傳送到源伺服器以及通過Cloudflare的請求的檔案。
它可以幫助您進行故障排除,因為當它用作代理時,它會比較來自源伺服器和Cloudflare的響應標頭。
如果這就是錯誤520出現的原因,它還用於確認標題太大。
您可以通過以下步驟使用瀏覽器建立HAR檔案:
Chrome
第1步:開啟瀏覽器並右鍵單擊該頁面。然後,選擇Inspect。
在Chrome中右鍵單擊並選擇檢查
第2步:面板開啟後,單擊“網路”選項卡並確保面板左側頂部有一個紅色圓圈按鈕。如果它是灰色的,請單擊它。
確保“網路”選項卡上的錄製按鈕為紅色
第3步:選中記錄按鈕旁邊的保留日誌選項,然後單擊清除按鈕。
選擇保留日誌的選項,然後單擊以清除以前的訊息
第4步:載入出現錯誤520的頁面。然後,右鍵單擊Chrome開發人員工具的訊息區域中的任意位置。
選擇Save as HAR with Content並將檔案儲存到您的計算機。
將HAR檔案儲存到您的計算機
火狐
第1步:開啟Firefox並右鍵單擊頁面上的任意位置。然後,選擇Inspect Element。
右鍵單擊頁面後選擇檢查元素
第2步:轉到“網路”選項卡並訪問出現 520 錯誤的頁面。右鍵單擊面板中的訊息並選擇Save All as HAR選項。
將檔案儲存到您的計算機。
右鍵單擊並選擇儲存HAR檔案
Edge
第1步:開啟Edge瀏覽器並右鍵單擊該頁面。從列表中選擇檢查。
在瀏覽器中右鍵單擊後選擇檢查
第2步:轉到“網路”選項卡並確保圓形記錄按鈕為紅色。如果不是,請單擊它。檢查保留日誌選項,然後清除當前訊息的圖示。
單擊以保留日誌並清除舊訊息
第3步:轉到您遇到錯誤520的頁面。然後,右鍵單擊開發人員工具面板中的訊息,並選擇“將所有內容另存為HAR”選項。
將檔案儲存到您的計算機。
Safari
第1步:開啟Safari並右鍵單擊Windows的頁面或按鍵盤上的CMD並單擊Mac。從列表中選擇檢查元素。
右鍵單擊頁面後選擇檢查元素選項
第2步:轉到網路選項卡。選中“保留日誌”選項,然後轉到出現錯誤520問題的頁面。
在“網路”選項卡上選中保留日誌的選項
第3步:單擊匯出按鈕並將HAR檔案儲存到您的計算機。
匯出HAR檔案
解決錯誤520的常見原因
現在您有了錯誤日誌,請搜尋它,看看您是否注意到以下任何一個問題。然後,按照以下步驟解決問題。
源伺服器PHP應用程式崩潰
導致錯誤520的一個常見問題是PHP應用程式之一在您的伺服器上崩潰。重新啟動PHP將修復錯誤。
使用SSH,您可以為Apache伺服器輸入以下命令:
apache2ctl restart
對於Nginx伺服器,您可以使用以下命令重新啟動PHP:
service nginx restart
Cloudflare IP地址未列入白名單
可能發生520錯誤的另一個原因是Cloudflare的IP地址未列入白名單。您可以將它們列入白名單,但託管服務提供商之間的步驟有所不同。
如果您不確定如何將IP列入白名單,請聯絡您的主機,尤其是當您沒有找到任何設定時。
TCP空閒超時少於300秒
傳輸控制協議 (TCP) 也可能是錯誤520的原因。
TCP是一種標準協議,用於建立和維護網路連線。如果TCP設定在300秒內超時,可能會導致520錯誤彈出。
您可以使用CLI命令更改TCP服務超時:
set service Service-HTTP-1 -svrTimeout 500
標題超過8KB
此問題通常是由於cookie過多或cookie過大造成的。您在故障排除過程中下載的HAR檔案將顯示這是否是問題所在。
Cloudflare有可用於標頭8KB的限制。
如果您編寫的外掛需要太多cookie或cookie中有太多資料,請嘗試減少它們。或者,如果您使用了很多都需要cookie的外掛,請刪除其中的一些。
來自您的伺服器的空響應
當您的站點缺少HTTP狀態程式碼或響應正文時會出現此問題。要解決此問題,請確保為您站點的域正確設定DNS。
檢查您的設定所涉及的步驟取決於您的DNS主機。如果您的託管計劃捆綁了DNS,請諮詢您的託管服務提供商。
請務必注意,如果您更新了DNS設定,您的站點可能需要長達72小時才能傳播。這意味著您的網站最多可能有三天不可用。
更改DNS設定後,您需要清除站點的快取。如果您的WordPress站點上安裝了快取外掛,並且不確定如何從外掛設定中清除站點快取,則可以檢視其文件。
您還可以通過您的託管服務提供商清除您網站的快取。如果您需要知道如何為您的網站執行此操作,請務必與他們聯絡。
如果您更新了DNS設定,您的站點再次可用,您清除了站點的快取,但仍然遇到錯誤520,請重新啟動伺服器。
缺少響應頭
“響應標頭是一個HTTP標頭,可以在HTTP響應中使用,並且與訊息的內容無關。響應標頭,如Age,Location或Server ,用於提供更詳細的響應上下文。”
丟失響應頭的原因有很多。
解決此問題的最佳選擇是使用Fiddler之類的除錯工具來除錯問題並準確檢視問題所在,以便您可以修復它。
伺服器未返回正確的HTTP錯誤響應
當您的伺服器傳送無效的錯誤響應時,它可能會導致 520 錯誤。這意味著該訊息不符合HTTP響應程式碼的標準列表。
它是由您的伺服器引起的,也可能是您伺服器上的某些內容,例如 PHP 應用程式或 WordPress 網站上使用的外掛。
如果您找不到錯誤程式碼的來源來修復它,請嘗試聯絡支援以獲得進一步的幫助。
再次啟用Cloudflare
檢查您是否再次收到錯誤訊息。如果這樣做,請禁用Cloudflare並繼續進行故障排除。
如果520 error已解決,請再次啟用Cloudflare。
第1步:為此,請登入Cloudflare,如果您通過將帳戶中的雲變為灰色來禁用Cloudflare,請首先從列表中選擇您的站點。
選擇要啟用Cloudflare的站點
第2步:單擊DNS選項卡,然後單擊灰色雲以重新啟用Cloudflare。
單擊灰色的雲以啟用Cloudflare
暫停後恢復Cloudflare
第1步:如果您之前暫停了Cloudflare,請通過登入Cloudflare 並單擊儀表板中列出的站點來恢復它。
選擇您需要恢復Cloudflare的站點
第2步:然後,轉到“Overview”選項卡並向下滾動到頁面底部,直到您在頁面右側的側欄中看到“Advanced Actions”部分。
單擊Enable Cloudflare on Site連結。
再次單擊啟用Cloudflare的連結
關閉開發模式
第1步:如果您之前已開啟Cloudflare的開發模式,您可以通過登入將其關閉。然後,單擊頁面上列出的您的站點。
選擇您的網站
第2步:接下來,轉到Caching選項卡。
單擊Caching選項卡
第3步:向下滾動到“Development Mode”部分,然後單擊當前設定為“On”的切換按鈕。
單擊切換以禁用開發模式
如果其他方法都失敗了怎麼辦
如果您仍然看到問題,請聯絡Cloudflare支援。
向他們提供以下詳細資訊:
- 發生錯誤時所請求資源的完整URL。
- Cloudflare的Ray ID,來自您看到error 520訊息的頁面。
- http://your-site.com/cdn-cgi/trace的輸出,但請務必將“your-site.com”替換為您的實際域名。
- 兩個HAR檔案:一個來自為您的站點啟用Cloudflare時的檔案,另一個來自您禁用Cloudflare時的檔案。
小結
error 520似乎令人困惑,尤其是因為它是Cloudflare錯誤。但是,這與導致Cloudflare無法連線的伺服器錯誤有關。
上述步驟是最常見的錯誤520原因的解決方案。如果您在嘗試後仍然遇到問題,您可能需要聯絡Cloudflare或您的託管支援。
注:如果您使用了百度雲加速等類似的CDN服務,同樣有可能出現error 520。您可以依據上述的解決方案作為參考,進行故障排查及修復。
評論留言