场景示例
本文以下图场景为例。某Web服务部署在美国硅谷地域的阿里云上,通过域名www.<YOURDOMAIN>.fun
对外提供服务,转发端口为HTTP 80端口。客户端主要集中在中国香港。因跨国公网不稳定,中国香港客户端访问美国(硅谷)地域的Web服务经常出现延迟、抖动、丢包等网络问题。
您可以为Web服务部署CDN,CDN可以帮助您构建边缘节点缓存,提升业务访问体验。同时CDN联动全球加速,依托阿里云优质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。
本文以阿里云云解析 DNS(Alibaba Cloud DNS)为例,为您介绍如何配置DNS解析。如何配置解析记录,请参见添加解析记录。如果您使用的DNS解析服务为非阿里云云解析DNS,请参见您的DNS服务商操作指导。
您已开通CDN服务。
操作步骤
步骤一:配置GA实例
本文以按量付费的标准型GA实例为例。
在全球加速控制台的列表页面,单击创建标准型按量付费实例。
在实例基础配置向导页面,配置基础信息,单击下一步。

在配置加速区域向导页面,添加加速地域并为其分配带宽,然后单击下一步。
本文场景中,加速区域添加为中国香港,公网质量类型配置为BGP(多线),加速地域其他参数配置可保持默认值或根据实际情况修改。

在配置监听配置向导页面,配置转发协议与端口,然后单击下一步。
本文场景中,协议配置为HTTP,端口配置为80,其他参数可保持默认值或根据实际情况修改。监听其他参数配置可保持默认值或根据实际情况修改。

在配置终端节点组配置向导页面,配置终端节点后端服务,然后单击下一步。
本文场景中,地域选择美国(硅谷),后端服务类型选择ECS,后端服务选择目标ECS实例,然后阅读并选中数据跨境合规承诺,终端节点组其他参数配置可保持默认值或根据实际情况修改。


在配置审核配置向导页面,确认全球加速的配置信息,然后单击提交。
在实例列表页面,找到已创建的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后的加速效果以您的实际业务测试为准。