c# - 重定向内部网络中的外部 http 连接
问题描述
当用户从互联网连接时,他总是被转发到容器 A。
这些容器都包含 asp.net core mvc 应用程序。
问题
我希望,根据容器 A 中发生的决定,能够将客户端重定向到容器 B 或容器 C。这些容器在未发布到 Internet 的端口 5001 和 5002 上运行。
我试过的
- asp.net重定向功能的不同组合
- nginx upstram 和代理功能(主要在这样的设置中)
我试图为 asp.net 核心找到一些直通功能,但找不到任何功能。
解决方案
1)如果所有的服务有相同的主机名和方案(http/https),使用相对路径
2)如果没有,配置 nginx 反向代理为代理应用程序提供以下标头:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Host $host:$server_port
在 asp 应用程序中配置 UseForwardedHeaders
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
....
app.UseForwardedHeaders();
它将使用初始请求填充 Request.Scheme 和 Request.Host,该请求由客户端
重定向使用此信息进行
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-3.1
推荐阅读
- sql - 需要使用 max() 过滤列表
- php - PHP读取文本文件忽略特定选项卡
- javascript - jQuery UI - 防止对话框拖到 div 上方
- javascript - 如何仅使用 Javascript 从 JPEG 文件中获取 TIFF 标签?
- java - 如何使用密钥文件通过 Java 数据库连接连接到 AWS 数据库
- python-3.x - 如何从上面的嵌套文件夹中正确导入?
- javascript - 如何重构此代码以减少重复性?
- javascript - Noob 在链接 javascript 和 html 方面需要帮助
- c# - 如何将数组添加到 Mongo 实体类?
- eclipse - 我可以将 Wildfly 14 与 Eclipse Oxygen.3a 一起使用吗