应用程序网关将 URL 路由到自定义端口

Application Gateway routing URL's to custom ports

我们有一个使用以下设置运行的应用程序网关

Backend 1 : Server A, Server B
Backend 2 : Server C

Listener1 - site.com - Port 8888 HTTPS - Backend 1
Listener2 - site.com - Port 3000 HTTPS - Backend 2 
Listener3 - site.com - Port 10001 HTTPS - Backend 1

当指定了 site.com:port 时,这是正确的路由,但是对于最终用户而言,记住包含端口并不理想。

我们要做的是

sub.site.com to map to site.com:8888
sub2.site.com to map to site.com:3000
sub3.site.com to map to site.com:10001

site.com/sub to map to site.com:8888
etc

这将允许用户通过友好 URL 而不是端口号连接到该服务。

路径为 /sub 且 HTTP 设置为自定义端口的基于路径的规则是否足够?

非常感谢任何建议。

您可以通过 path-based routing rules or multi-site 侦听器执行此操作。

对于第一种情况,您需要 sub.site.com to map to site.com:8888。您可以创建一个多站点侦听器,然后在该多站点侦听器中使用 frontend port 80 和 hostname sub.site.com。 HTTP 设置应指定端口 8888。

第二个,你想要site.com/sub to map to site.com:8888。您可以添加一个基于路径的规则,设置路径 /sub/* 和后端 pool1 以及端口 8888 的 HTTP setting1。此外,监听器应该有前端端口 80.

确保侦听器正在侦听端口 80 并且 HTTP 设置具有您的后端网站的自定义端口。如果您以后要发布网站,建议使用多站点网站。如果您想将其用作无状态请求并托管您的网站,您可以使用基于路径的规则。

您似乎想在上述场景中实现端到端 SSL。

请按照以下步骤操作:

  1. 使用端口 443 的 HTTPS 端点创建多站点侦听器并上传证书并提供主机名。您将需要在同一端口 443 上创建 3 个侦听器并指定主机名。
  2. 创建 3 个 HTTP 设置并确保分别定义后端端口并为端到端 SSL 选择 HTTPS。基本上,这意味着您在后端的服务仍然使用 SSL,因此请在 HTTP 设置中上传 .cer 证书。
  3. 如果您将服务器分组在一个后端池中,那么同一个服务应该 运行在所有服务器上运行。在这种情况下,请确保后端池 运行 中的两台服务器都在端口 8888 和 10001 上提供服务。
  4. 使用相应的侦听器和 HTTP 设置以及后端池创建规则

此致, 姆斯里尼