问题描述
我在Azure的同一台计算机上的不同端口上托管了多个站点:
contoso.com:8000
contoso.com:8001
contoso.com:8002
contoso.com:8003
以及单个站点托管在不同的计算机上:
foo.com:8000
foo2.com:8000
我想使用反向代理通过不同的URL和不同的子域来解决这些问题;
w1.fabrikam.com/I1 -> contoso.com:8000
w1.fabrikam.com/I2 -> contoso.com:8001
w2.fabrikam.com -> foo.com:8000
w3.fabrikam.com -> foo2.com:8000
有类似的帖子已被回答,但仅使用了子域。可以在应用程序网关中使用子域以及URL规则吗?
Azure: Route subdomain traffic to different backend port
解决方法
要将不同的子域寻址到不同的后端,可以为每个后端配置多站点侦听器:
w2.fabrikam.com -> foo.com:8000
w3.fabrikam.com -> foo2.com:8000
为此,您可以创建两个后端池,并创建两个多主机侦听器。
您可以参考 https://docs.microsoft.com/en-us/azure/application-gateway/multiple-site-overview 和 https://docs.microsoft.com/en-us/azure/application-gateway/create-multiple-sites-portal
要通过不同的URL解决这些问题,您可以配置基于路径的路由规则。
w1.fabrikam.com/I1 -> contoso.com:8000
w1.fabrikam.com/I2 -> contoso.com:8001
对于Path-based routing
,选择Add multiple targets to create a path-based rule
。对于Path
,键入/I1/*
或/I2/*
。
对于HTTP设置,创建两个HTTP设置,为每个HTTP设置选择后端端口8000
或8001
。
您可以参考https://docs.microsoft.com/en-us/azure/application-gateway/create-url-route-portal