mobile wallpaper 1mobile wallpaper 2
2047 字
6 分钟
阿里云ESA你可能不知道的小知识
2026-02-01
2026-02-23

介绍#

关于阿里云ESA平台

TIP
  • 阿里云官方把虽然把ESA叫边缘加速平台,但其本质上是CDN。所以我们将其视为正常的CDN去使用就好啦;
  • CDN类似相当于是多台配置了类似Nginx、Apache等网关的服务器。这些正在运行网关服务器可以根据一定的规则缓存静态资源,再根据厂商设置的一些规则来加速访问这些已经被缓存的资源。理论上来说诸如像Nginx、Apache这样的网关服务器能实现的功能和特性,CDN都可以实现!不过服务商对于这些运行在云端的网关服务器做了非常严格的功能划分。根据划分性能、功能的不同,也衍生出来各种质量、价格、性能不参差不齐的CDN。
  1. 阿里云ESA业务应该由原先的DCDN业务更变而来,这点在ESA控制页面左下角有所提示。 规则页面与国际主流服务商Clouflare的规则页面有异曲同工之妙。 阿里云缓存配置与Cloudflare CDN的缓存配置相差不多,两者相比腾讯云Edgeone有着更加灵活可用的默认缓存规则,在开发网站时候可略微减少调试步骤。

阿里云ESA配置#

规则#

  1. 对于一些笼统的、抽象的操作或系统,我们通常定义规则来实现个性化操作,以达到我们想要实现的功能或操作。

默认缓存配置#

  • 我们在创建CDN加速网站时可用灵活选择 网站页面API 接口图片视频来配置默认缓存规则。
NOTE
  • 选择API接口时,阿里云ESA 服务器会默认不缓存php、aspx、jsp、cgi 等动态数据,使得动态数据可以随时保持在最新状态;
  • 选择图片视频,阿里云ESA 服务器会默认缓存常见的mp4、ts、m4a、m4s 、m3u8 后缀的音频文件,而不从源站拉取;
  • 网站页面是以上两者的折中方案,根据阿里云默认配置的规则缓存常见的静态数据、不缓存动态数据,适合个人网站。

注意:阿里云ESA默认使用HTTP协议,所以我们需要手动开启HTTPS。

HTTPS 配置#

TIP
  • 与EdgeOne相比,阿里云证书部署相对比较宽松,免费版只支持Let’s Encrypt证书或其他自上传托管证书
  • 与ESA相比,EdgeOne提供DV证书,但不支持泛域名;
  • 由于阿里云ESA默认不启用HTTPS加密,也不提供SSL/TLS证书,所以我们需要在规则页面手动配置。

开启HTTPS加密#

  • 站点管理>添加的站点>规则>HTTPS规则 > 新建规则,选择所有传递请求,并开启SSL/TLS 加密
WARNING

注意:开启HTTPS是相对于HTTP而言的; 若源站已经启用HTTPS,则我们可以使用ESA实现隐藏源站IP访问加速的功能。但此时我们需要选择回源协议是HTTP还是HTTPS; 源站已经是HTTPS协议,如果我们使用HTTP协议回源时就会显示状态码525 SSL 握手失败此时需要选择HTTPS协议回源。

证书配置#

  • 对于CNAME域名,我们可以使用DVC委派证书,来快速签发Let’s Encrypt 免费证书。
  • 在签发证书时,建议签发泛域名证书,以避免不必要的麻烦。
TIP

注意:截至于2026年2月3日,Let’s Encrypt只支持申请单个泛域名证书,不支持多泛域名,否则申请会失败; DCV托管的解析方式为CNAME解析,不是证书验证TXT解析!

转换规则#

  • 站点管理>添加的站点>规则>重定向规则 > 新建规则:
  • 我们可以将特定区域的请求重定向到一个不存在的网站,以达到屏蔽此区域访问的功能。

访问优化#

  • 我们可以启用ESA的优化规则。

网络优化规则#

  • 站点管理>添加的站点>规则>网络优化规则>新建规则,开启 HTTP/2回源
  • 如果你的站点有 gRPCWebSocket 需求,也可直接开启。

内容优化规则#

  • 站点管理>规则>内容优化规则 > 新建规则,开启 GzipBrotliZstd

启用QUIC#

  • 站点管理>规则>速度和网络>优化,在最下方开启QUIC(HTTP3)
  • 注意:腾讯EdgeOne免费版并不支持QUIC(HTTP3)

回源规则#

TIP

CDN 回源类似是一种正向代理,相当把某一端口上的服务映射到一个域名上,而CDN就起到了充当网关服务器的角色。

阿里云默认回源端口为80/443,若需要更改ESA默认的回源端口,则需要匹配以下规则:

  • 站点管理>规则>回源规则>新建规则,配置自定义回源端口。
WARNING
  • 注意:此处建议选择自定义规则,若选择所有传入请求,可能会导致其余子域名回源端口错误,进而提示 5xx 错误。

安全规则#

隐藏源站IP#

我们可以使用阿里云ESA提供的源地址池功能,以增加在子域名时暴露IP地址的问题。

  • 站点管理>流量>源地址池>创建源地址池>
  • 在添加记录时,选择CNAME,调整选项,选择创建的源地址池即可。
NOTE

注意:创建源地址池的还可以实现DNS级的负载均衡功能。

站点保护#

  • 若站点正在遭遇攻击,我们可以在快捷操作中开启 我正在遭受攻击选项,以启用严格模式,可缓解源站压力以保护源站;
  • 我们也可以选择区域DNS解析,把国外请求引流至防护能力更强CloudFlare平台上;
  • 要使用区域DNS解析,我们可以选择国内DNS服务商:阿里云或腾讯云。Cloudflare默认不提供此项功能,但支持使用规则来重定向。
  • 提示:华为云国际版提供免费的DNS解析,TTL可最低设置为1s,且支持多种线路切换,有需要的朋友可以移步华为云国际版查看。

开发#

  • 若我们正在调试站点,可以在快捷操作中开启开发模式禁用所有安全防护选项,以排除阿里云ESA CDN的缓存影响。
  • 我们可以选择禁用网络缓存,或使用Shift + F5 强制刷新网页获取最新数据。

阿里云相关问题#

路由错误#

  • 阿里云ESA的阿里云ESA文档提供了ESA的边缘阶段的路由规则,我们可以据此配置路由规则。 根据ESA的官方文档,我们需要在参考的根目录创建esa.jsonc文件,来配置路由规则。
TIP

注意:这种方式创建的配置比ESA控制台的构建设置有着更高的优先级。

{
// 必需字段:项目名称
// 在ESA控制台中显示的项目标识符
// 如果项目不存在,将以此名称创建新项目
"name": "Astro_Blog",
// 可选字段:边缘函数入口文件路径
// 如果您的项目不需要服务端逻辑,可以删除此字段
// 示例:"./src/index.js" "./server/index.ts"
// "entry": "./src/index.js",
// 可选字段:安装依赖命令
// 构建前执行的安装命令,默认为"npm install"
// 可设置为空字符串跳过此步骤
"installCommand": "pnpm i && pnpm build",
// 可选字段:构建命令
// 执行项目构建的命令,默认为"npm run build"
// 可设置为空字符串跳过此步骤
// "buildCommand": "npm run build",
// 必需字段:静态资源配置
"assets": {
// 必需字段:静态资源目录
// 构建后生成的静态文件所在目录
// 常见值:"./dist"、"./build"、"./out"、"./public"
"directory": "./dist",
// 必需字段:404处理策略
// "404Page":返回静态目录中的404.html文件(适用于SSG静态站点)
// "singlePageApplication":返回index.html文件(适用于SPA单页应用)
"notFoundStrategy": "404Page"
},
// 可选字段:构建环境设置
"buildSettings": {
// 可选字段:Node.js版本
// 指定构建时使用的Node.js版本
// 支持的版本:16、18、20等
"nodeVersion": "22"
}
}

如果你在部署Astro项目时,原本应该项目返回的404页面却由ESA 边缘节点返回,请确保notFoundStrategy字段设置为"404Page"

关于#

  • 本篇文章起草于2026年2月2日,亦在记录我配置阿里云ESA遇到的相关问题,并加上我对此的理解;
  • 本篇文章最晚修改于2026年2月7日

每日一图#

每日一图

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

阿里云ESA你可能不知道的小知识
https://blog.haoryou.com/3f8a7b2c/
作者
洛枫晨
发布于
2026-02-01

部分信息可能已经过时