Featured image of post 使用阿里ESA对网站加速

使用阿里ESA对网站加速

日常运营网站时,你是不是总遇到这些问题:国内访问快但海外加载慢、网站没HTTPS被浏览器提示不安全、偶尔还会遇到恶意攻击?

如果你和我一样,域名(比如 chiplayout.net)托管在阿里云DNS、网站部署在阿里云ECS上,那阿里云ESA(边缘安全加速)绝对是性价比之选——基础免费版就能实现全球加速、HTTPS加密、WAF安全防护,今天就手把手教你从头到尾配置好!

一、配置前必看:前提条件确认

先把这些准备工作做好,避免配置中踩坑: ✅ 域名已备案(服务中国大陆用户必须满足) ✅ ECS已开放网站端口(80/443或自定义端口如8080) ✅ ECS绑定弹性公网IP,且公网IP可正常访问 ✅ 阿里云账号完成实名认证 ✅ 已开通ESA服务(控制台搜索“边缘安全加速 ESA”,一键开通即可)

二、ESA完整配置步骤(以chiplayout.net为例)

步骤1:添加站点到ESA控制台

  1. 登录阿里云ESA控制台,左侧菜单点击「站点管理」→「新增站点」
  2. 填写核心信息:
    • 主域名:chiplayout.net
    • 接入方式:选「CNAME接入」(NS接入需要托管整个域名DNS,新手不推荐)
    • 加速区域:全球(仅服务国内用户可选“中国内地”)
    • 套餐类型:基础版(免费)

步骤2:验证域名所有权(TXT记录)

这一步是为了证明你是域名的所有者,操作很简单:

  1. 在ESA控制台复制系统生成的TXT记录值
  2. 打开阿里云DNS解析控制台,新增一条记录:
    • 记录类型:TXT
    • 主机记录:_esaauth
    • 记录值:粘贴ESA生成的字符串
    • TTL:保持默认即可
  3. 返回ESA控制台点击「验证」,验证成功后站点状态会变成“已验证”

步骤3:配置DNS CNAME接入(关键!)

这一步是让用户访问你的域名时,先走到ESA边缘节点,再回源到ECS:

第一步:在ESA控制台添加CNAME记录

进入站点→DNS→记录→添加记录:

  • 记录类型:CNAME
  • 主机记录:@(代表根域名,仅加速www.chiplayout.net则填www)
  • 源站类型:IP地址(填ECS公网IP,比填域名更稳定)
  • 回源HOST:chiplayout.net(必须和Web服务器的server_name匹配)
  • 业务类型:网站页面
  • 高级设置:启用「CNAME拉平」

第二步:修改阿里云DNS解析

  1. 删除原有指向ECS IP的A记录(比如@对应的A记录)
  2. 新增CNAME记录:
    • 记录类型:CNAME
    • 主机记录:@
    • 记录值:粘贴ESA生成的CNAME地址(如chiplayout.net.a1.initll.com)
    • TTL:600(默认)

✨ 配置完成后,用户访问chiplayout.net → ESA边缘节点 → 回源到你的ECS,加速链路就通了!

步骤4:配置回源规则(可选但推荐)

避免回源时端口/协议不匹配导致访问失败:

  1. 路径:规则→回源规则→新增规则
  2. 规则名称:自定义(如chiplayout_backsource)
  3. 匹配条件:
    • 字段:主机名
    • 操作符:等于
    • 值:chiplayout.net
  4. 核心配置:
    • 回源协议:HTTP/HTTPS(按ECS实际服务协议选)
    • 回源端口:80/8080(填ECS上Web服务的实际端口)
    • 回源HOST:chiplayout.net

步骤5:启用HTTPS(免费证书,必配!)

没有HTTPS的网站会被浏览器标红,ESA能一键申请免费证书:

  1. 路径:SSL/TLS→边缘证书→申请免费证书
  2. 证书域名:chiplayout.net(需要www则一并申请)
  3. 等待1-5分钟,系统会自动用Let’s Encrypt签发证书
  4. 证书生效后:
    • 勾选「强制HTTPS」(自动跳转HTTPS)
    • 开启「OCSP Stapling」(提升TLS加载性能)

💡 小技巧:ESA终止HTTPS加密后,回源可以走HTTP,能节省ECS资源。

步骤6:开启安全防护(WAF+流量限制)

避免网站被恶意攻击、流量刷爆:

1. 启用WAF防护

路径:安全防护→WAF→托管规则→添加「默认托管规则集」,防护模式选「拦截」

2. 设置流量封顶

路径:用量封顶→创建规则,比如设置阈值50GB/月,动作选「停用站点」或「告警」

步骤7:缓存优化(解决静态资源加载慢,重点避坑!)

静态资源(图片/CSS/JS)缓存到边缘节点,能大幅提升加载速度,这一步新手容易踩坑,重点讲正确配置:

❌ 错误做法(会标红)

直接填 /*.jpg|*.png|*.css|*.js → ESA不支持管道符|,会判定非法格式

✅ 正确做法(推荐)

一条规则覆盖所有静态资源,操作如下:

  1. 路径:缓存配置→缓存规则→新增规则
  2. 填写信息:
    字段填写内容
    规则名称Static Assets Cache
    路径匹配模式/*
    文件扩展名jpg,jpeg,png,gif,css,js,ico,woff,woff2,ttf
    缓存时间7天
    忽略源站缓存头✅ 勾选
    缓存键包含参数❌ 不勾选(静态资源带版本号如style.css?v=1.2则勾选)

💡 原理:匹配所有路径,但仅对指定扩展名的静态资源生效,不会误缓存动态页面。

额外优化:HTML页面缓存(针对静态站点)

如果你的网站是Hugo/Hexo等静态站点,即使首页/文章页无扩展名(如chiplayout.net/),也能配置缓存提升速度: 新增一条缓存规则:

字段填写内容
规则名称HTML Pages Cache
路径匹配模式/*
文件扩展名留空
缓存时间1小时(便于后续更新)
忽略源站缓存头✅ 勾选

三、验证配置是否生效

配置完别着急,按这3步检查是否生效:

1. DNS检查(确认CNAME解析成功)

打开终端执行命令:

dig chiplayout.net CNAME

✅ 预期结果:返回ESA的CNAME地址(如*.initll.com)

2. 访问测试(确认HTTPS和缓存生效)

(1)检查静态资源缓存

执行命令:

curl -I https://chiplayout.net/logo.png

✅ 预期结果:

  • X-Site-Cache-Status: HIT(首次访问是MISS,再次访问变成HIT)
  • Cache-Control: max-age=604800(对应7天缓存)

(2)检查HTML页面状态

执行命令:

curl -I https://chiplayout.net/

如果看到 x-site-cache-status: DYNAMIC 且无Cache-Control,属于正常现象

  • DYNAMIC:ESA默认把无扩展名路径识别为“动态内容”,未配置缓存时会回源拉取
  • 优化:按上文配置HTML页面缓存后,会变成HIT/MISS,且出现Cache-Control头

3. 全球测速

用WebPageTest工具,选择不同地区节点测试网站加载速度,能明显看到海外访问速度提升。

四、常见问题解答

Q1:缓存规则填/.jpg|.png为什么标红?

A:ESA缓存规则不支持管道符|、正则表达式,仅支持通配符*或“文件扩展名”列表(英文逗号分隔),按上文“正确做法”配置即可。

Q2:curl -I https://chiplayout.net/ 显示x-site-cache-status: DYNAMIC?

A:正常!ESA默认将无扩展名路径(如首页)识别为动态内容,静态站点可按上文配置HTML页面缓存(1小时),既提升速度又不影响更新。

Q3:如何进一步提升安全性?

A:ECS安全组仅允许ESA回源IP段访问(ESA控制台可下载IP段),避免直接暴露ECS公网IP。

五、总结

  1. 阿里云ESA基础免费版能满足中小网站的核心需求:全球加速、HTTPS、WAF防护,配置核心是CNAME接入+证书申请+缓存规则。
  2. 缓存规则避坑:用“文件扩展名”列表配置静态资源缓存,静态站点可额外配置HTML页面缓存。
  3. 验证生效的关键:检查CNAME解析、缓存响应头、HTTPS状态,DYNAMIC状态可通过规则优化。

按照这个教程配置,你的网站既能实现全球访问加速,又能保证HTTPS安全和防攻击,赶紧动手试试吧!🚀

陕ICP备20000710号
本站已运行15年5月16天
发表了398篇文章 · 总计14万1千字
最后更新:2026-01-31
Built with Hugo
Theme Stack designed by Jimmy