两台服务器上有 PHP 应用程序和 MySQL,通过互联网连接会是个问题吗?

两台服务器上有 PHP 应用程序和 MySQL,通过互联网连接会是个问题吗?

我计划将一个 Wordpress 网站迁移到 Cloudways 上的两个虚拟服务器。这是一个相对繁忙的网站(每周大约有 500,000 名访问者),所以我想将应用程序(和缓存等)拆分到一个 Vultr 实例上,将 MySQL 放在另一个实例上。

通常情况下,我会让这两个服务器通过本地网络互相通信,并将 MySQL 服务器从 DMZ 中移除。由于它们位于同一个网络上,因此延迟会降到最低。

但是,Cloudways 不支持这种方式的部署。因此,两台服务器必须通过公共 IP 进行通信。它们不会在同一个本地网络上。尽管它们位于同一个数据中心位置。

我意识到这可能会将 MySQL 服务器暴露到互联网上,而通常我希望保持它不暴露。

我想要咨询一下这个设置是否:

1)可能会有太多的延迟,从而违背将应用程序和数据库拆分到单独的服务器上的目的(即获得性能提升)。

2) 这是否会带来任何重大的安全隐患。我推测我们可以在 MySQL 服务器上设置防火墙,只允许来自应用程序 (Wordpress) 服务器 IP 地址的连接。对吗?这样应该可以最大限度地降低安全风险。

由于之前没有以这种方式进行设置,因此我想请比我更有经验的人来运行这个程序,以确保我不会忽视潜在的问题。

答案1

1)可能会有太多的延迟,从而违背将应用程序和数据库拆分到单独的服务器上的目的(即获得性能提升)。

这取决于您的数据中心如何处理流量。通常,他们会设置路由,不让同一数据中心内两台机器之间的流量通过外部路由器,因为那样毫无意义,只会增加(如您所说)不必要的延迟。您可以想象其他客户也有类似的情况。您可以询问数据中心的联系人,但我 99% 肯定您可以预期的延迟将类似于直接 LAN 连接。根据我过去的经验,属于同一数据中心的 IP 之间的通信从未离开数据中心(除非客户明确以这种方式路由)。

2) 这是否会带来任何重大的安全隐患。我推测我们可以在 MySQL 服务器上设置防火墙,只允许来自应用程序 (Wordpress) 服务器 IP 地址的连接。对吗?这样应该可以最大限度地降低安全风险。

与任何可直接访问互联网的机器一样,它确实存在安全隐患。您绝对应该在 MySQL 服务器上设置防火墙,而且绝对不应该只依赖源的主机名/IP/MAC,因为欺骗仍然存在(永远不要假设您的提供商/数据中心会为您处理这些事情)。这基本上意味着您应该始终设置加密,无论是在 MySQL 连接中还是在点对点 VPN 中(我会这样做,因为我很偏执)两者兼而有之,两台服务器之间永远不应该存在任何形式的未加密连接。在这方面,将 SQL 服务器视为位于世界另一端的服务器。

此外,您可以向数据中心寻求支持。大多数数据中心除了提供您自己的解决方案外,还提供路由/防火墙/ DDoS 保护解决方案,也许可以减轻一些负载。

相关内容