全部產品
Search
文件中心

Global Accelerator:GA聯動CDN實現回源加速

更新時間:Jul 25, 2025

電商、線上遊戲、音ApsaraVideo for VOD等行業對於業務的訪問速度與品質有非常高的要求。為全面提升終端使用者的訪問體驗,您可以組合使用Global Accelerator (GA)與內容分發網路CDN(Content Delivery Network)。Global AccelerationGA依託阿里雲優質BGP頻寬和全球傳輸網路,通過聯動內容分發網路CDN(Content Delivery Network),協助您快速構建全球CDN回源網路,保障CDN業務實現動態內容的全面加速。

情境樣本

本文以下圖情境為例。某Web服務部署在美國矽谷地區的阿里雲上,通過網域名稱www.<YOURDOMAIN>.fun對外提供服務,轉送連接埠為HTTP 80連接埠。用戶端主要集中在中國香港。因跨國公網不穩定,中國香港用戶端訪問美國(矽谷)地區的Web服務經常出現延遲、抖動、丟包等網路問題。

您可以為Web服務部署CDN,CDN可以協助您構建邊緣節點緩衝,提升業務訪問體驗。同時CDN聯動Global Acceleration,依託阿里雲優質BGP頻寬和全球傳輸網路,協助您快速構建全球CDN回源網路,保障CDN業務實現動態內容的全面加速。

前提條件

  • 您的來源站點伺服器已部署了應用服務。

    本文以Alibaba Cloud Linux 3作業系統為例,並使用Nginx及Netcat搭建一個包括動態時間顯示和靜態圖片內容的網頁,以類比服務端。

    參考樣本:阿里雲ECS部署測試服務

    1. 執行 vi ECS_server_install.sh,按i鍵進入編輯模式。

    2. 複製並粘貼以下指令碼內容:

      #!/bin/bash
      
      # 更新系統並安裝Nginx和Netcat
      sudo yum update -y
      sudo yum install nginx -y
      sudo yum install -y nc
      
      # 啟動並設定Nginx開機自啟
      sudo systemctl start nginx
      sudo systemctl enable nginx
      
      # 配置Nginx
      sudo bash -c 'cat > /etc/nginx/nginx.conf <<EOF
      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      
      events {
          worker_connections 1024;
      }
      
      http {
          include /etc/nginx/mime.types;
          default_type application/octet-stream;
          log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
                            '\$status \$body_bytes_sent "\$http_referer" '
                            '"\$http_user_agent" "\$http_x_forwarded_for"';
          access_log /var/log/nginx/access.log main;
          sendfile on;
          keepalive_timeout 65;
          include /etc/nginx/conf.d/*.conf;
      
          server {
              listen       80;
              listen       [::]:80;
              server_name  _;
              root         /usr/share/nginx/html;
      
              location / {
                  try_files \$uri \$uri/ =404;
              }
      
              location /dynamic {
                  proxy_pass http://127.0.0.1:8080;
                  proxy_set_header Host \$host;
                  proxy_set_header X-Real-IP \$remote_addr;
                  proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
                  proxy_set_header X-Forwarded-Proto \$scheme;
              }
      
              error_page 404 /404.html;
                  location = /40x.html {
              }
      
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
      }
      EOF'
      
      # 建立靜態內容
      sudo bash -c 'echo "<img src=\"test.png\" alt=\"Static Image\" width=\"300\"/>" > /usr/share/nginx/html/test.png'
      
      # 建立動態內容指令碼
      sudo bash -c 'cat > /usr/share/nginx/html/dynamic_script.sh <<EOF
      #!/bin/bash
      while true; do
          echo -e "HTTP/1.1 200 OK\r\nContent-Length: \$(date | wc -c)\r\n\r\n\$(date)" | /usr/bin/nc -l -p 8080
      done
      EOF'
      
      # 給動態指令碼賦予執行許可權並後台運行
      sudo chmod +x /usr/share/nginx/html/dynamic_script.sh
      nohup /usr/share/nginx/html/dynamic_script.sh > /dev/null 2>&1 &
      
      # 重啟Nginx服務
      sudo systemctl restart nginx
      
      # 建立index.html檔案
      sudo bash -c 'cat > /usr/share/nginx/html/index.html <<EOF
      <!DOCTYPE html>
      <html>
      <head>
          <title>Test Page</title>
      </head>
      <body>
          <h1>GA and CDN Test Page</h1>
          <h2>Static Content: Image</h2>
          <img src="test.png" alt="Static Image" width="300"/>
      
          <h2>Dynamic Content: Current Time</h2>
          <div id="dynamic-time">Loading current time...</div>
      
          <script>
              function fetchTime() {
                  fetch("/dynamic")
                  .then(response => response.text())
                  .then(data => {
                      document.getElementById("dynamic-time").innerText = data;
                  })
                  .catch(error => {
                      document.getElementById("dynamic-time").innerText = "Failed to load current time.";
                  });
              }
      
              setInterval(fetchTime, 1000);
              fetchTime();
          </script>
      </body>
      </html>
      EOF'
    3. Esc鍵退出編輯模式,然後輸入:wq儲存並退出。

    4. 執行sudo sh ECS_server_install.sh命令,運行指令碼。

    5. 上傳一個圖片檔案test.png到樣本指令碼所指定的/usr/share/nginx/html目錄下。

  • 您已為業務網域名稱www.<YOURDOMAIN>.fun配置了DNS解析,即已配置了A記錄將網域名稱指向來源站點伺服器的公網IP。

    本文以阿里雲Alibaba Cloud DNS為例,為您介紹如何配置DNS解析。如何配置解析記錄,請參見添加解析記錄。如果您使用的DNS解析服務為非阿里雲Alibaba Cloud DNS,請參見您的DNS服務商操作指導。

  • 您已開通CDN服務

操作步驟

步驟一:配置GA執行個體

本文以隨用隨付的標準型GA執行個體為例。

  1. Global Acceleration控制台標準型執行個體 > 執行個體列表列表頁面,單擊建立標準型隨用隨付執行個體

  2. 執行個體基礎配置嚮導頁面,配置基礎資訊,單擊下一步

    GA基礎配置.png

  3. 配置加速地區嚮導頁面,添加加速地區並為其分配頻寬,然後單擊下一步

    本文情境中,加速地區添加為中國香港公網品質類型配置為BGP(多線)加速地區其他參數配置可保持預設值或根據實際情況修改。

    重要
    • 加速地區包含中國內地地區時,自有網域名稱必須完成ICP備案才可對外提供服務。

    • 如果頻寬峰值設定過低,可能出現限速從而導致流量被丟棄,請合理規劃頻寬峰值,確保和業務需求匹配。

    GA加速地區.png

  4. 配置監聽設定精靈頁面,配置轉寄協議與連接埠,然後單擊下一步

    本文情境中,協議配置為HTTP連接埠配置為80,其他參數可保持預設值或根據實際情況修改。監聽其他參數配置可保持預設值或根據實際情況修改。

    HTTP監聽.png

  5. 配置終端節點群組設定精靈頁面,配置終端節點後端服務,然後單擊下一步

    本文情境中,地區選擇美國(矽谷)後端服務類型選擇ECS後端服務選擇目標ECS執行個體,然後閱讀並選中資料跨境合規承諾終端節點群組其他參數配置可保持預設值或根據實際情況修改。

    EPG.png

    GA 跨境合規 INTL.png

  6. 組態稽核設定精靈頁面,確認Global Acceleration的配置資訊,然後單擊提交

  7. 在執行個體列表頁面,找到已建立的GA執行個體,在CNAME列擷取GA執行個體分配的CNAME。

步驟二:配置CDN

  1. 在CDN控制台的網域名稱管理頁面,單擊添加網域名稱

  2. 網域名稱資訊設定精靈頁面,配置商務資訊來源站點資訊

    1. 配置商務資訊

      本文情境中,商務資訊地區的加速区域選擇全球(不包含中國內地)加速域名輸入業務網域名稱www.<YOURDOMAIN>.fun,其他參數可保持預設值或根據實際情況修改。關於網域名稱資訊配置詳細資料,請參見添加加速網域名稱

      CDN 添加網域名稱 INTL.png

    2. 配置來源站點資訊

      來源站點資訊地區單擊新增來源站點資訊,在新增來源站點資訊對話方塊中,選擇來源站點的類型,並填寫來源站點地址,然後單擊確定

      本文情境中,來源站點資訊選擇來源站點網域名稱類型並輸入GA的CNAME,權重配置為100,其他參數可保持預設值或根據實際情況修改。關於來源站點資訊配置詳細資料,請參見添加加速網域名稱

      CDN 配置來源站點.png

    3. 選中資料跨境合規承諾,並單擊下一步

  3. 推薦配置設定精靈頁面,可為網域名稱配置緩衝到期時間、頻寬封頂、頁面最佳化等功能的配置,您可以根據實際情況配置並單擊一鍵配置,或直接單擊跳過,暫不配置

    本文情境中,在緩衝到期時間地區,找到預設緩衝規則,在操作列單擊修改,並配置地址/dynamic到期時間0秒,以實現動態內容回源擷取。關於推薦配置的詳細資料,請參見推薦配置(可選)

    CDN PHP不緩衝.png

  4. 在網域名稱管理頁面,找到已添加的網域名稱,在CNAME列擷取CDN分配的CNAME。

步驟三:配置DNS解析

網域名稱添加成功後,您需要將對應網域名稱的DNS解析到CDN的CNAME,訪問加速網域名稱的請求才能轉寄到CDN節點,實現加速效果。

為避免已有的A記錄與CNAME記錄產生衝突,您可以為A記錄和CNAME記錄設定不同的解析請求來源(即解析線路)。例如,本文情境下,您可以先為中國香港地區添加CNAME記錄進行測試,待測試成功後,再逐步擴充至其他地區或切換為預設線路。

  1. 網域名稱解析頁面,找到目標業務網域名稱,在操作列單擊解析設定

    說明

    對於非阿里雲註冊網域名稱,需要先添加網域名稱到雲解析控制台,才可以進行網域名稱解析設定。

  2. 在解析設定頁面,單擊添加記錄,配置CNAME記錄,然後單擊確定

    本文情境中,記錄類型配置為CNAME主機記錄配置為www解析請求來源配置為中國香港,記錄值配置為CDN的CNAME,解析記錄其他參數配置可保持預設值或根據實際情況修改。

    配置CNAME.png

步驟四:訪問測試

在加速地區(本文為中國香港地區)的電腦中,使用瀏覽器開啟開發人員工具並訪問www.<YOURDOMAIN>.fun,可以查看當前網頁各資源的載入時間。

  1. 測試組態GA與CDN後的網路延遲情況。

    CDN+GA回源加速效果.png

  2. 測試未配置GA,僅配置了CDN的網路延遲情況。

    您可以將CDN來源站點資訊從GA的CNAME修改為來源站點伺服器的公網IP,並在GA中刪除終端節點群組,然後進行測試。

    CDN加速.png

  3. 測試未配置GA和CDN的網路延遲情況。

    您可以在CDN中停用加速網域名稱,並在DNS中停用指向CDN的CNAME記錄,然後進行測試。

    未使用CDN+GA.png

  4. 加速效果對比:

    匯總如上測試資料,可以看出使用CDN後,降低了靜態內容(test.png)的訪問延遲;在CDN基礎上配置GA後,進一步降低了動態內容(dynamic)的訪問延遲。

    情境

    靜態內容test.png

    耗時(單位:毫秒)

    動態內容dynamic

    耗時(單位:毫秒)

    資料對比

    情境一:使用GA加速並且使用CDN

    5

    228

    相比情境二,動態內容訪問速度提升50.5%。

    情境二:使用CDN但不使用GA

    5

    461

    相比情境三,靜態內容訪問速度提升98.1%。

    情境三:不使用GA與CDN

    261

    474

    /

說明

GA聯動CDN後的加速效果以您的實際業務測試為準。

相關文檔