情境樣本
本文以下圖情境為例。某Web服務部署在美國矽谷地區的阿里雲上,通過網域名稱www.<YOURDOMAIN>.fun對外提供服務,轉送連接埠為HTTP 80連接埠。用戶端主要集中在中國香港。因跨國公網不穩定,中國香港用戶端訪問美國(矽谷)地區的Web服務經常出現延遲、抖動、丟包等網路問題。
您可以為Web服務部署CDN,CDN可以協助您構建邊緣節點緩衝,提升業務訪問體驗。同時CDN聯動Global Acceleration,依託阿里雲優質BGP頻寬和全球傳輸網路,協助您快速構建全球CDN回源網路,保障CDN業務實現動態內容的全面加速。
前提條件
您的來源站點伺服器已部署了應用服務。
本文以Alibaba Cloud Linux 3作業系統為例,並使用Nginx及Netcat搭建一個包括動態時間顯示和靜態圖片內容的網頁,以類比服務端。
參考樣本:阿里雲ECS部署測試服務
執行 vi ECS_server_install.sh,按i鍵進入編輯模式。
複製並粘貼以下指令碼內容:
#!/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'
按Esc鍵退出編輯模式,然後輸入:wq儲存並退出。
執行sudo sh ECS_server_install.sh命令,運行指令碼。
上傳一個圖片檔案test.png到樣本指令碼所指定的/usr/share/nginx/html目錄下。
您已為業務網域名稱www.<YOURDOMAIN>.fun配置了DNS解析,即已配置了A記錄將網域名稱指向來源站點伺服器的公網IP。
本文以阿里雲Alibaba Cloud DNS為例,為您介紹如何配置DNS解析。如何配置解析記錄,請參見添加解析記錄。如果您使用的DNS解析服務為非阿里雲Alibaba Cloud DNS,請參見您的DNS服務商操作指導。
您已開通CDN服務。
操作步驟
步驟一:配置GA執行個體
本文以隨用隨付的標準型GA執行個體為例。
在Global Acceleration控制台的列表頁面,單擊建立標準型隨用隨付執行個體。
在執行個體基礎配置嚮導頁面,配置基礎資訊,單擊下一步。

在配置加速地區嚮導頁面,添加加速地區並為其分配頻寬,然後單擊下一步。
本文情境中,加速地區添加為中國香港,公網品質類型配置為BGP(多線),加速地區其他參數配置可保持預設值或根據實際情況修改。

在配置監聽設定精靈頁面,配置轉寄協議與連接埠,然後單擊下一步。
本文情境中,協議配置為HTTP,連接埠配置為80,其他參數可保持預設值或根據實際情況修改。監聽其他參數配置可保持預設值或根據實際情況修改。

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


在組態稽核設定精靈頁面,確認Global Acceleration的配置資訊,然後單擊提交。
在執行個體列表頁面,找到已建立的GA執行個體,在CNAME列擷取GA執行個體分配的CNAME。
步驟二:配置CDN
在CDN控制台的網域名稱管理頁面,單擊添加網域名稱。
在網域名稱資訊設定精靈頁面,配置商務資訊及來源站點資訊。
配置商務資訊。
本文情境中,商務資訊地區的加速区域選擇全球(不包含中國內地),加速域名輸入業務網域名稱www.<YOURDOMAIN>.fun,其他參數可保持預設值或根據實際情況修改。關於網域名稱資訊配置詳細資料,請參見添加加速網域名稱。

配置來源站點資訊。
在來源站點資訊地區單擊新增來源站點資訊,在新增來源站點資訊對話方塊中,選擇來源站點的類型,並填寫來源站點地址,然後單擊確定。
本文情境中,來源站點資訊選擇來源站點網域名稱類型並輸入GA的CNAME,權重配置為100,其他參數可保持預設值或根據實際情況修改。關於來源站點資訊配置詳細資料,請參見添加加速網域名稱。

選中資料跨境合規承諾,並單擊下一步。
在推薦配置設定精靈頁面,可為網域名稱配置緩衝到期時間、頻寬封頂、頁面最佳化等功能的配置,您可以根據實際情況配置並單擊一鍵配置,或直接單擊跳過,暫不配置。
本文情境中,在緩衝到期時間地區,找到預設緩衝規則,在操作列單擊修改,並配置地址為/dynamic,到期時間為0秒,以實現動態內容回源擷取。關於推薦配置的詳細資料,請參見推薦配置(可選)。

在網域名稱管理頁面,找到已添加的網域名稱,在CNAME列擷取CDN分配的CNAME。
步驟三:配置DNS解析
網域名稱添加成功後,您需要將對應網域名稱的DNS解析到CDN的CNAME,訪問加速網域名稱的請求才能轉寄到CDN節點,實現加速效果。
為避免已有的A記錄與CNAME記錄產生衝突,您可以為A記錄和CNAME記錄設定不同的解析請求來源(即解析線路)。例如,本文情境下,您可以先為中國香港地區添加CNAME記錄進行測試,待測試成功後,再逐步擴充至其他地區或切換為預設線路。
在網域名稱解析頁面,找到目標業務網域名稱,在操作列單擊解析設定。
說明 對於非阿里雲註冊網域名稱,需要先添加網域名稱到雲解析控制台,才可以進行網域名稱解析設定。
在解析設定頁面,單擊添加記錄,配置CNAME記錄,然後單擊確定。
本文情境中,記錄類型配置為CNAME,主機記錄配置為www,解析請求來源配置為中國香港,記錄值配置為CDN的CNAME,解析記錄其他參數配置可保持預設值或根據實際情況修改。

步驟四:訪問測試
在加速地區(本文為中國香港地區)的電腦中,使用瀏覽器開啟開發人員工具並訪問www.<YOURDOMAIN>.fun,可以查看當前網頁各資源的載入時間。
測試組態GA與CDN後的網路延遲情況。

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

測試未配置GA和CDN的網路延遲情況。
您可以在CDN中停用加速網域名稱,並在DNS中停用指向CDN的CNAME記錄,然後進行測試。

加速效果對比:
匯總如上測試資料,可以看出使用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後的加速效果以您的實際業務測試為準。