雷池(Safeline) + Lucky 通过阿里云 ESA 实现泛域名反向代理

一、配置阿里云 ESA

登录 阿里云 ESA(边缘安全加速) 控制台 ,在 站点管理 创建 1 个站点。

官方试用版: ESA开发者动员限时活动 。

  • 新增站点。

    将站点接入 ESA: example.com

  • 选择区域和接入方式。

    获得加速与保护的区域: 中国内地 (需要备案)

    接入方式:CNAME或NS。

二、CNAME 形式

创建完成后,进入 example.com 配置。

2.1 DNS -> 记录

添加泛域名 DNS 记录:

项 值 附
记录类型 CNAME
主机记录 * .example.com
代理状态 开启 代理加速
记录值/源站 域名
回源 HOST 跟随请求 HOST
TTL 自动

保存即可。

2.2 规则 -> 回源规则

新增回源规则:

项 值
规则名称 *.example_to_example
规则内容
如果请求匹配以下规则...
传入请求类型
主机名 结尾为 .example.com
则执行…
回源协议和端口 回源协议 跟随客户端
HTTPS 端口 16667
回源301/302跟随 状态 关闭

保存即可。

Unraid 网页不支持回源301/302跟随,否则报错:

This status code indicates that the request received by the ESA node has exceeded the maximum number of times it can enter the ESA network in a loop.

ESA 节点收到的请求,在 ESA 网络中循环进入的次数已超过最大限制(循环路由 / 回环次数超限)。

此时,根据前文 雷池(Safeline)通过 Docker 安装 Lucky 实现DDNS、反向代理、重定向 - Yogile - 博客园 内容中配置的前端地址 waf.example.com ,即可访问 https://waf.example.com 。因没有配置 ESA 边缘证书,故访问提示证书连接不安全。

2.3 SSL/TLS -> 边缘证书

设置开启 SSL/TLS 。

方式一:域名在阿里云

以 Let's Encrypt 证书为例,托管 DCV:

页面提示:
在为未托管域名申请证书时,可将 DCV 校验托管至 ESA 域名。开启托管 DCV 后,需要在权威 DNS 添加一条 CNAME 记录,从而将站点域名的 DCV 校验 CNAME 至 ESA 域名。

  • 记录类型:CNAME

  • 主机记录:

    • 【Digicert证书】:_dnsauth.<hostname>
    • 【Let's Encrypt证书】:_acme-challenge.<hostname>
  • 记录值:<hostname>.<站点ID>.dcv.aliyun-esa.com

在 阿里云云解析 DNS ( https://dnsnext.console.aliyun.com/authoritative/domains/example.com )添加记录:

项 值
记录类型 CNAME
主机记录 _acme-challenge .example.com
解析请求来源 默认
记录值 example.com.<站点ID>.dcv.aliyun-esa.com
TTL 10(推荐) 分钟

保存即可。

再申请免费证书:

项 值
证书颁发机构 Let's Encrypt(无SLA)
证书域名 *.example.com

保存即可,预计在10分钟内通过申请。

若提示未通过,则检查 阿里云云解析 DNS ( https://dnsnext.console.aliyun.com/authoritative/domains/example.com )配置是否正确。

当刷新后,*.example.com 证书状态显示 “正常”,再访问 https://waf.example.com 就没有不安全提示了。

方式二:云盾证书

使用 控制台 数字证书管理服务 已上传的证书。

在 SSL/TLS -> 边缘证书 证书管理中,选择 上传自定义证书 :

项 值
证书来源 云盾证书
证书名称 cert-xxxxxx

cert-xxxxxx 为 控制台 数字证书管理服务 对应 *.example.com 的证书。

方式三:自定义证书

在 SSL/TLS -> 边缘证书 证书管理中,选择 上传自定义证书 :

项 值
证书来源 自定义证书
证书名称 *.example.com
证书(公钥) xxxxxx
私钥 xxxxxx

可上传前文 雷池(Safeline)通过 Docker 安装 Lucky 实现DDNS、反向代理、重定向 - Yogile - 博客园 内容中配置 SSL/TLS证书时申请的 *.example.com 的证书。

2.4 Lucky 对泛域名创建子站点

在 Web服务 中,即可添加其他子规则(反向代理):

项 值
子规则名称 other
子规则开关 启用
服务类型 反向代理
前端地址 other.example.com
后端地址 https://{host}:xxxx
CorazaWAF 无
万事大吉 启用
忽略后端TLS证书验证 是
使用目标地址Host请求头 否
自动反代重定向 否
记录访问日志 启用

保存即可访问 https://other.example.com => https://example.com:16667(雷池代理) => https://example.com:16666(Lucky 代理)。

三、NS 形式

若域名 example.com 未接入其他服务,可通过 NS 形式创建站点( 将域名接入ESA-边缘安全加速(ESA)-阿里云帮助中心 )。

接入方式 说明 适用场景 优势
NS接入 将域名解析完全托管至ESA,实现DNS解析与加速一体化管理。 新注册的域名,未配置任何DNS解析。首次使用CDN/加速服务。需要一站式DNS托管和流量管理。 完全由ESA接管DNS解析,实现统一管理。支持智能路由、全局流量调度。简化运维,提升安全性和加速效果。
CNAME接入 域名解析通过DNS服务商完成,ESA提供域名加速和集中管理能力。 更熟悉传统CDN类产品。仅需部分业务接入ESA,保持原有解析架构。 灵活接入,不影响现有DNS配置。可针对特定子域名加速。

也可以按照官方教程( 切换站点的CNAME与NS接入方式-边缘安全加速-阿里云 )进行切换。

四、雷池+Lucky防护架构

例如,本地服务器192.168.1.199,提供漫画网页服务lanraragi,协议HTTP,端口8088,网址http://192.168.1.199:8088。

代理配置过程如下。

流程图

如此,既可以实现统一接口对外安全服务,又可以对每个子规则(子域名)的安全措施单独配置。

  1. 二级域名访问 (https://lanraragi.example.com),通过阿里云 DNS 解析指向阿里云 ESA。

  2. 阿里云 ESA 匹配泛域名(https://*.example.com),指向阿里云 ESA 的 DNS 记录、回源协议、回源端口(example.com、HTTPS、16667),通过阿里云 DNS 解析指向域名(example.com)的 AAAA(IPv6)实际地址物理主机:雷池防护应用16667端口(https://example.com:16667)。

    AAAA(IPv6)实际地址为 Lucky DDNS 结果。

  3. 雷池防护应用16667端口(https://example.com:16667) ,反向代理到 Lucky Web服务(16666端口)(https://*.example.com:16666)。

  4. Lucky Web服务(16666端口) 解析网络请求的初始HOST(https://lanraragi.example.com),匹配子规则的前端地址(lanraragi.example.com),反向代理到后端地址:雷池防护应用8088端口(https://example.com:8088)。

  5. 雷池防护应用8088端口(https://example.com:8088) ,反向代理到本地服务器192.168.1.199(http://192.168.1.199:8088)。

posted @ 2026-03-22 14:14  Yogile  阅读(415)  评论(0)    收藏  举报