Wordpress 和 MySQL 位于同一个 EC2 实例上,不同的子网。一个是公网,一个是私网

Wordpress 和 MySQL 位于同一个 EC2 实例上,不同的子网。一个是公网,一个是私网

我的目标是在同一个 VPC 上建立一个包含 WordPress 及其 MySQL 数据库的 EC2 实例,并在公共子网上提供 WordPress,在私有子网上提供 MySQL。目的是减少 MySQL 对公共流量的暴露,而无需将其放在单独的 EC2 实例上。

为了实现此目的,我在公共子网中启动了一个 EC2 实例,并为私有子网附加了一个网络接口。然后,我安装了 WordPress 和 MySQL,默认情况下它们安装在公共子网上。

我不清楚的是如何将 MySQL 放在私有子网上并让 WordPress 可以访问。我尝试将地址绑定到私有子网内的 IP。但是,每当我这样做时,WordPress 都无法访问。如果我将绑定切换到我的实例的 IP 地址,WordPress 就可以正常工作。

答案1

一段时间以来,实际上很长一段时间... MySQL 只在本地主机上监听。我听说,这甚至是一些云系统操作员考试的一个目标?几乎每个托管运营商都在自己的常见问题解答中提到了这一点,因为它太常见了。

https://www.google.com/search?q=allow+mysql+remote+connection&newwindow=1

您需要编辑 mysqld 配置文件,名称和位置可能有所不同...可能是 my.cnf 或 mysqld.cnf??? 无论如何,找到“bind-address”配置变量并修改它。此外,您还需要修改授权,因为大多数授权最初都是为允许 user@localhost 而创建的。修改授权和刷新权限后,您必须允许流量通过防火墙。几乎任何安装都可能有一个,无论是本地还是云。确保您允许来自特定 IP 的 tcp/3306 或全局允许任何人(如果您有死亡愿望或喜欢乘坐 737MAX 的靠窗座位)

那么,总结一下...

  1. 修改配置
  2. 授予/特权
  3. 在防火墙上戳漏洞

测试并验证您所做的事情是否有效,记录您所做的事情、原因、票号以及所有这些...

答案2

您可以让 WordPress 使用 nginx 或 apache 运行,并配置这些 Web 服务器仅在公共 subne5/ip 上为 WordPress 站点提供服务。

您可以拒绝使用安全组来拒绝 MySQL 从 Internet 访问,并允许从 Web 服务器本地访问 mysql/mariadb。

但从安全和架构的角度来看,它并不理想。

您可以让 mysql 监听特定的 ip,并且您的操作系统网络配置需要有该 ip。

相关内容