【问题标题】:How to run Multiple Servers as one without using different ports for each?如何在不使用不同端口的情况下将多个服务器作为一个运行?
【发布时间】:2021-08-10 10:08:47
【问题描述】:

我有多个运行在相同 IP 地址但端口不同的 ASP.NET 服务器。它们在 Microsoft IIS 中运行,并共同构成一个多租户应用程序。这些服务器的示例如下表所示。有超过 15 台服务器。由于开放了许多端口,因此引发了应用程序容易受到攻击的安全问题。

+------------+-----------+----------------+-----------------+-----------+
| Server     |    Home   | Authentication | User Management |   Others  |
+------------+-----------+----------------+-----------------+-----------+
| IP Address | 127.0.0.1 |    127.0.0.1   |    127.0.0.1    | 127.0.0.1 |
+------------+-----------+----------------+-----------------+-----------+
| Port       |     80    |       97       |       120       |           |
+------------+-----------+----------------+-----------------+-----------+

在这个应用程序中,你可以在80端口访问主页,当你点击登录按钮时,Home服务器会将你重定向到97端口的Authentication服务器。虽然管理单独的服务器项目更容易,不利于生产。

您能否建议您的解决方案,我应该使用什么架构来代替多端口问题?

【问题讨论】:

  • 您可以设置nginx。然后 Nginx 将接收所有传入的请求,并根据 URL 路径将其转发到正确的服务。所以/auth 将进入您的身份验证服务,/user 将进入用户管理,而所有其他人将进入 Home。正如 Marc 所说,这并不能真正提高安全性。不过看起来确实更好。
  • “由于有许多端口开放,因此引发了应用程序容易受到攻击的安全问题。” - 那是怎么回事?如果端口都在做同样的事情,那么一个端口与 20 个端口一样容易受到攻击。端口的数量在很大程度上是无关紧要的(尽管它可能对您的防火墙配置不方便) - 这是 它们所做的这使他们易受攻击(或不易受攻击)
  • @HansKilian:我研究了NginX,这是一个可行的解决方案,但是当手动更改配置时,您必须重新启动NginX,从而中断应用程序,这对生产不利。我尝试动态更改配置以防某些服务器 URL 发生更改,但我无法做到。您还有其他解决方案吗?
  • @MarcGravell:我认为当打开多个端口时,你会增加暴露并增加被攻击的机会。此外,服务器也不相同,其中一个可能比其他服务器更容易受到攻击。
  • 您可以使用命令nginx reload 重新加载 nginx 配置,该命令没有任何停机时间。在生产环境中,您还希望运行多个 nginx 实例,这样您的整个站点就不会出现故障,以防单个实例发生故障。

标签: c# asp.net iis server


【解决方案1】:

您不仅可以通过IP端口,还可以通过其名称来唯一标识服务器。

我建议您在本地使用 hosts 文件或使用 DNS 服务器。
例如,在您的 hosts 文件中,您可以拥有:

127.0.0.1 home.lan
127.0.0.1 users.lan

在80端口上运行,您可以浏览
http://home.lan访问家庭服务器或http://users.lan访问用户服务器。

您必须设置本地 (PROD) 环境或云您的 DNS

您的问题没有描述您的解决方案是如何使用的:本地 DMZ?天蓝色? AWS?

其他可能的解决方案可以是:

  • 带有或不带有Nginx的Docker。
  • 本地环境中的 nginx。

【讨论】:

  • 我正在研究您的解决方案,并会尽快给您反馈。谢谢
猜你喜欢
  • 2014-12-26
  • 2019-01-21
  • 2017-04-01
  • 1970-01-01
  • 2020-11-25
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
相关资源
最近更新 更多