日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

CDN回源時網站出現5xx報錯的排查方法

問題描述

當您使用阿里云CDN加速站點訪問資源后,客戶端的請求將首先發送到CDNL1節點(一級節點),再回源到L2節點(二級節點),然后再回源到源站。因此如果訪問過程中出現問題,可能涉及到多級網絡鏈路的問題。當CDN回源源站異常失敗時就會出現5xx的錯誤,主要包括502 Bad Gateway503 Service Temporarily Unavailable、504 Gateway Time-out

問題原因

通過阿里云CDN訪問出現5xx錯誤,在響應的Response HeaderX-Swift-Error字段會有相關的錯誤,例如forward retry timeout或者orig response 5xx error,同時用CURL測試,或者瀏覽器Network開發者模式下可以查看這個請求消耗的時間。

  • 如果是全局都是5xx的錯誤,通常就是CDN的配置錯誤或者源站錯誤導致的,以下原因會導致CDN回源失?。?

    • 源站不通或源站域名無法解析

    • CDN配置了HTTPS回源但源站不支持HTTPS

    • 源站開啟了SNI校驗但CDN沒有開啟回源SNI

  • 如果只是部分區域有問題,或者問題是偶爾出現,那么有可能跟部分地區回源網絡或其他因素有關,例如以下場景:

    • 比如源站的安全策略把部分CDN節點IP屏蔽,就會導致對應區域的用戶訪問CDN異常。

    • 比如源站側網絡不穩定、回源跨境鏈路不穩定或者源站動態接口響應速度不穩定,就會有偶爾出現5xx的情況。

解決方案

阿里云CDN(Content Delivery Network)建立并覆蓋在承載網上,是由不同區域的服務器組成的分布式網絡,也是將源站資源緩存到全國各地的邊緣服務器的網站加速產品。當您初次訪問或緩存到期后,服務器會透傳回到源站,其中源站的響應時間和首字節時間對回源請求的處理非常重要。如果您的網站在CDN回源時出現5xx報錯的情況,請參見以下方法進行排查:

場景一:CDN源站是客本地主機或ECS

如您的源站是本地主機或ECS,請參見以下步驟進行排查處理:

步驟一:獲取HTTP的響應頭信息

如果訪問網站出現5xx報錯,可以通過CURL或者wget測試工具獲取HTTP的響應頭信息??梢詤⒖家韵旅睿@取HTTP中的響應頭信息。

說明

您也可以進入指定瀏覽器,按F12鍵,然后單擊Network,檢測定位請求5xx報錯的URL資源。

curl -vo [$File_Name] [$IP]
說明
  • [$File_Name]:在當前目錄新建文件的文件名,訪問網站的輸出會存放于該文件中。

  • [$IP]:訪問網站的IP地址。

系統返回類似如下,X-Swift-Error返回“orig response 5xx error”信息,這是因為CDN回源站響應超時,或者源站處理超時導致的。

在獲取了訪問網站的HTTP響應信息后,可以參考以下幾個方面,進行問題排查。

步驟二:根據出現報錯的區域范圍進行測試和分析

可以使用Networkbench或者17CE檢查網站在各地節點的網絡性能。請根據出現報錯的區域范圍進行以下監測和分析:

  • 單地區訪問網站出現5xx報錯:可能與節點到源站的運營商鏈路有關,可嘗試多測試幾次,檢查能否恢復網絡。如果出現報錯造成的影響較嚴重,建議保留response header響應頭信息后,聯系阿里云技術支持進行排查。

  • 大面積地區訪問網站出現5xx報錯:可以參考以下命令,分別測試客戶端到源站以及客戶端到CDN節點的通信質量,并作對比。

    time telnet [$Test_IP] [$Test_Port]
    ping [$Test_IP]
    說明
    • 第一條命令可以獲取執行telnet命令時使用的時間。

    • 第二條命令可以測試網絡的連通性。

    • [$Test_IP]:待檢測的IP地址,可以為源站IP地址或CDN節點IP地址。

    • [$Test_Port]:待檢測網站的端口號,可以為源站的端口號或CDN節點的端口號。

步驟三:檢查域名整體的業務帶寬和QPS

檢查域名整體的業務帶寬和QPS的方法如下:

  1. 登錄CDN控制臺。

  2. 在左側導航欄,選擇內容分發服務>監控查詢>實時監控,觀察近期帶寬和QPS指標,檢查帶寬和QPS是否有突增的情況,如有突增情況發生,可能會導致回源后造成源站帶寬壓力過高,從而引發源站響應超時。 image.png

  3. 如果CDN透傳回源的帶寬有突增情況,則應檢查是否有新資源發布,或者檢查熱點資源是否配置了緩存規則。如果您的游戲類或圖片類業務較多,則建議在發布前通過CDN預熱功能將資源提前布置到CDN上,避免瞬間回源帶寬過高造成源站瓶頸。同時,需要針對熱點資源添加長期緩存策略。

  4. 檢查CDN側和源站是否配置了緩存規則。如果源站配置了no-cache響應頭,則其優先級高于CDN側。如果源站和CDN側都沒有配置緩存規則,則默認緩存10~3600秒,關于緩存規則的更多信息,請參見緩存概述。

    如果您剛接入CDN業務,對CDN業務沒有緩存經驗,可以對目錄類型的資源配置一個最大的緩存范圍。然后針對您不需要緩存的資源,單獨配置一條策略,后續可通過優先級來控制匹配順序。具體操作,請參見配置緩存過期時間

步驟四:源站不通或源站域名無法解析的排查

CDN節點都是公網上的節點,CDN配置的源站必須要連通公網。如果配置的源站IP公網不可達、端口不通或者源站域名沒有解析,則會導致CDN回源請求源站失敗,報錯5XX。常見的幾種異常情況如下:

  1. 源站網絡不通,無法ping通源站IP。測試命令如下。

    ping [$IP]
    說明

    [$IP]為源站IP。

  2. 源站端口不通或源站直接返回5XX錯誤。如下操作所示,telnet端口報Connection timed out錯誤。

    1. 如果源站端口配置的是80,則測試80端口是否通,命令如下。

      telnet [$IP] 80
    2. 如果源站端口配置的是443,則測試443端口是否通。如果源站端口配置的是自定義端口,則測試自定義端口是否通。

    3. 可以在CDN控制臺獲取配置的源站地址和端口,然后在本地hosts文件中綁定源站。您可以固定源站做七層測試,查看是否是源站無響應或源站直接響應5XX。也可以使用curl命令測試綁定源站,測試命令如下。

      • 源站端口是80:curl -voa http://[$Domain] -x [$IP]:80

        說明

        [$Domain]為加速域名。

      • 源站端口是443:curl -voa https://[$Domain] --resolve [$Domain]:443:[$IP]

  3. 源站配置的是域名,但是源站域名未配置解析,則會導致CDN請求源站失敗。可以使用pingnslookup命令檢查源站域名的解析是否正常。例如,源站域名為example.aliyundoc.com,ping源站域名example.aliyundoc.comunknown host錯,使用nslookup域名查詢源站域名的DNS記錄報server can't find example.aliyundoc.com: NXDOMAIN錯,都表示域名未解析。如何配置域名解析請參見配置CNAME。 image.png

步驟五:檢查CDN回源配置

CDN配置了HTTPS回源,但源站不支持HTTPS也會導致訪問資源返回5xx錯誤,請根據業務參見以下操作排查:

  1. 源站端口配置成443,但源站不支持HTTPS。在CDN控制臺的源站配置界面,如果源站端口配置成443,則CDN回源的時候是HTTPS回源到源站的443端口。源站需要開放443端口,且配置HTTPS證書。

    • 如果源站不支持HTTPS訪問,則CDN回源失敗,報5XX錯。對于這種情況,可以把回源端口改成80。

    • 如果業務需要443回源,那么需要在源站配置HTTPS證書。 image.png

  2. CDN配置了協議跟隨回源,但是源站不支持HTTPS訪問。協議跟隨回源如果設置成HTTPS,則CDN是以HTTPS回源。協議跟隨回源如果設置成跟隨,則當客戶端是HTTPS訪問的時候,CDNHTTPS回源。源站不支持HTTPS的情況下,會出現訪問失敗。對于這種情況,需要關閉協議跟隨回源功能,或設置為HTTP回源。

    image.png

  3. 可以通過curl命令綁定源站進行測試,測試命令如下。

    curl -voa https://[$Domain] --resolve [$Domain]:443:[$IP]

    系統顯示類似如下。

  4. 也可以修改本地hosts文件綁定到源站,用瀏覽器發起HTTPS訪問。以下案例報錯您的連接不是私密連接,則表示不支持HTTPS訪問。

場景二:使用CDN+OSS的業務架構

如果您使用了CDN+OSS的業務架構,可參見以下內容排查問題:

  1. 登錄對象存儲控制臺,單擊左側導航欄的常用工具與服務,參考ossutil相關文檔,并使用ossutil命令行工具的--probe-item選項,檢查OSS的下行帶寬是否超過10GBps,QPS訪問是否超過10000次/秒。如果OSS超過限制規則,則會觸發OSS的流控,對超過限制的回源請求進入慢速處理。關于OSS的流控規則,請參見使用限制。

    說明
    • 關于如何使用ossutil命令行工具的--probe-item選項,請參見查看選項。

    • 慢速處理不是直接返回不可用的狀態,僅是對超過限制的請求處理進行降速處理。

  2. 檢查CDN回源的下行流量是否超過了源站的帶寬限制,源站帶寬被打滿后會導致連鎖的網絡反應和應用層的問題。

    說明
    • 檢查兩個節點間傳輸的流量可以使用iperf工具。

    • 檢查網絡連接數可以使用Netstat工具。

  3. 檢查源站是否有防火墻限制,即源站是否對回源請求做過限速或者IP限制。

  4. 若之前的排查結果均正常,可以分析源站Web服務的報錯日志,檢查日志中是否有5xx報錯信息出現。若未在應用層的日志文件中發現報錯記錄,則可以反向測試源站到CDN節點的鏈路,檢查是否有網絡間鏈路抖動導致的5xx報錯,具體以現場實際發生的頻率和業務狀況為準。

    說明

    一般情況下,源站帶寬如果容易被打滿,或者容易發生丟包或延遲的情況,則建議將Nginxnginx.conf配置文件中的send timeout或者read timeout參數調大一些。