Azure:如何通过子域名将流量路由至不同后端端口?
实现子域名到多端口站点的映射:Azure服务方案
首先明确说:完全可以用Azure Application Gateway实现你的需求,你之前对它的功能理解有偏差——它不仅支持基于路径的路由,还原生支持基于主机名(子域名)的路由规则,并且能够为后端目标指定特定端口。下面是具体的实现思路:
用Azure Application Gateway实现的步骤
- 创建后端池:在Application Gateway的后端池中,添加你的目标机器(foobar.com),但要为每个端口单独创建一个后端目标条目。比如:
- 条目1:IP/主机名填foobar.com,端口设为8000
- 条目2:IP/主机名填foobar.com,端口设为8001
- 条目3:IP/主机名填foobar.com,端口设为8002
- 配置HTTP设置:为每个端口创建对应的HTTP设置,在设置里指定对应的后端端口(比如8000、8001、8002),同时配置其他必要的参数(比如协议、超时时间等)。
- 创建路由规则:针对每个子域名创建一条路由规则:
- 规则1:匹配主机名
aaaa.mysite.com,将流量转发到对应8000端口的后端目标和HTTP设置 - 规则2:匹配主机名
bbbb.mysite.com,转发到8001端口的对应配置 - 规则3:匹配主机名
cccc.mysite.com,转发到8002端口的对应配置
- 规则1:匹配主机名
- 配置前端监听:确保Application Gateway的前端监听端口(比如80/443)已经正确配置,并且你的子域名DNS记录指向Application Gateway的公共IP。
备选方案:Azure Front Door
如果你的业务需要全球分布式的访问加速、CDN缓存或者更高级的全球流量管理能力,Azure Front Door也是非常合适的选择,它同样支持子域名到指定后端端口的映射:
- 添加前端主机名:在Front Door中添加每个子域名(
aaaa.mysite.com、bbbb.mysite.com等),并完成域名验证。 - 配置后端池:同样,在后端池中添加你的foobar.com机器,为每个端口创建单独的后端条目(指定对应端口)。
- 创建路由规则:为每个前端主机名关联一条路由规则,将流量路由到对应端口的后端目标。Front Door会自动处理域名匹配和流量转发。
总结
- 如果你的业务主要在单一区域,或者需要更精细化的本地流量控制(比如WAF集成、会话亲和性等),Application Gateway是更合适的选择。
- 如果需要全球覆盖、CDN加速或者跨区域的流量路由,Front Door会是更好的方案。
内容的提问来源于stack exchange,提问作者SturmUndDrang
相关产品推荐
相关产品推荐

