【发布时间】:2019-11-13 15:29:15
【问题描述】:
当用户从互联网连接时,他总是被转发到容器 A。
这些容器都包含 asp.net core mvc 应用程序。
问题
根据容器 A 中发生的决定,我希望能够将客户端重定向到容器 B 或容器 C。这些容器在未发布到 Internet 的端口 5001 和 5002 上运行。
我尝试了什么
我试图为 asp.net core 找到一些直通功能,但找不到。
【问题讨论】:
-
HTTP 重定向只会告诉客户端/浏览器向新 URL 发出另一个 HTTP 请求。如果该 URL 不可访问,则无法进行重定向。
-
好吧,你必须设置 nginx 以便它知道用户何时想要访问容器 B 或 C,通常通过将 url(如 /containerB/)分配给相应的端口(5001)然后您只需重定向到 /containerB/。
-
@Longoon12000 这会不会导致与重定向相同的问题(由 JohnathanBarclay 指出)?
-
@91378246 通过配置 nginx 以便您的容器可以访问,然后不行。正如 Johnathan 所说的那样,如果 URL(例如容器 B 和 C)不可访问,那么您将无法重定向到它们(好吧,您可以但您将无法访问它们)。因此,为什么您必须使它们易于访问。如果您只有一个端口 80/443 用于三个不同的应用程序,那么您必须让 nginx 确定通过 URL 转发到哪个端口(到容器 A、B 或 C)。
-
@Longoon12000 是的,但问题是,我想在转发之前先通过容器 A 传递每个连接。为 /ContainerB/ 创建一个位置将使它可以从外部访问。
标签: c# asp.net-mvc nginx asp.net-core nginx-reverse-proxy