运行 Amazon Linux 2,安装 Apache、PHP、PHP-MySQL 和 WordPress。此 AMI 使用名为 WebDMZ 的 AWS 安全组。
在 Amazon RDS 中创建了一个 MySQL DB,它也使用 AWS 安全组 WebDMZ,我将db_name
、db_user
、db_pass
、复制db_hostname
到/var/www/html/wp-config.php
。
@www.example.com/wp-admin/install.php
我收到:
建立数据库连接时出错。连接超时
如果 Amazon Linux 2 和 MySQL 都在同一个安全组中,它们难道不应该能够相互通信吗?
非常感谢您的帮助。
编辑,我发现如果我添加一条入站规则以允许来自任何地方的 MySQL 连接,安装就会继续,但我怀疑这是否是一种安全的方法?
答案1
你说得对,那并不安全。
您的入站规则应该只允许您的 Web 服务器连接到 MySQL 端口(由内部 IP 标识),其他任何服务器都不能与该端口上的数据库通信(除非您开始将其用于其他服务)。
正确的配置应该是您的 Wordpress 服务器面向世界,但使用内部 VPC 与 MySQL 服务器通信。这使数据库与互联网隔离。
答案2
如果 Amazon Linux 2 和 MySQL 都在同一个安全组中,它们难道不应该能够相互通信吗?
没有。
您必须明确允许安全组成员访问。安全组可以根据 IP 范围 (xx.xx.xx.xx/xx) 或来自其他安全组的访问。这就是你想要做的事。
假设您的WebDMZ
组 ID 是sg-1234abcd
- 您必须添加一条规则,以便从组打开对 TCP 端口 3306 的访问sg-1234abcd
。只需将其输入到通常要求输入 IP 地址的字段中即可。
经过自我参照规则中的安全组您开放该组成员的访问权限。
希望有帮助:)