按域名转发怎么配
HTTP/HTTPS 监听支持按请求域名把流量分发到不同服务器组,适合多站点共用一个入口、按域名灰度与后端分离。配置时要注意三点:精确域名与泛域名的优先级差异、默认服务器组的兜底作用、以及域名条件与证书覆盖范围的对应关系。
基本信息
| 匹配依据 | 请求头中的域名(Host),不包含端口 |
|---|---|
| 条件形式 | 精确域名或泛域名(通配) |
| 优先级 | 常见约定为精确域名优先于通配,以产品文档为准 |
| 默认兜底 | 未命中任何域名规则的请求走默认服务器组 |
| 证书关系 | HTTPS 场景下证书需覆盖该域名,否则客户端直接握手失败 |
| 协议要求 | 仅七层监听支持;四层监听不解析域名 |
典型使用场景
- 多站点共用一个入口,按域名分发到各自后端
- 主域名与 API 域名分离,各自使用独立的服务器组
- 域名级灰度:某域名整体切到新版本,观察后再推广
- 新域名上线前先接入默认组,验证后再单独配置规则
- 多租户 SaaS 场景下按域名区分客户环境
验证域名规则是否命中
验证域名规则是否命中
curl -s -o /dev/null -w '%{http_code}\n' -H 'Host: a.example.com' http://<LB地址>/
# 对比不同域名的返回内容,判断是否分派到不同服务器组
curl -s -H 'Host: a.example.com' http://<LB地址>/ | head -3
curl -s -H 'Host: b.example.com' http://<LB地址>/ | head -3
# 未配置默认组时,未命中域名的请求会直接返回错误配置核对
| 核对项 | 期望 |
|---|---|
| 域名规则 | 覆盖实际使用的全部域名 |
| 默认服务器组 | 已配置,用于兜底未命中的域名 |
| 泛域名范围 | 可控,不覆盖计划外的子域 |
| 证书覆盖 | HTTPS 监听下的证书包含全部对外域名 |
| 后端组 | 每个域名对应正确的服务器组,避免串站 |
泛域名匹配可能覆盖未计划接入的子域名,新增通配规则前先盘点会被它命中的范围,避免抢走其他业务的流量。
HTTPS 监听下如果证书不覆盖某个域名,客户端会在握手阶段失败,此时看到的不是规则问题而是证书报错,排查方向容易跑偏。