我正在将所有网站移动到谷歌 Cloud 并遇到性能问题 .
我在Compute Engine和Cloud SQL服务器上设置了一个VM实例 .
并使用提供的IP地址将Joomla网站从VM连接到Cloud SQL服务器 . (似乎是公共知识产权)
与在VM本身内部使用本地数据库的网站相比,性能非常慢 .
所以,我的问题是,有没有办法找到连接到Cloud SQL的本地IP,因为我们的Web服务器也在Google Cloud的基础架构上 .
或者,唯一的方法是坚持VM内的数据库?
更新
我使用this guide设置了 Cloud 代理 .
现在可以用代理连接到mysql提示符 .
但还是找不到让joomla使用这个 Cloud 代理连接数据库的方法 .
2 回答
从Compute实例连接到Cloud SQL实例的最快,最简单,最安全的方法是使用Cloud SQL Proxy . 这有多种原因,但主要有以下几点:
还有一个事实是,您只需要一个静态和少量的实例(在您的情况下为1)连接到数据库,因此您不需要过度复杂化您的设置,您可以将此二进制文件放入您的实例中,运行它作为一个守护进程,并立即快速通道到您的Cloud SQL实例(我在这里使用“快速通道”,因为流量将通过Google Cloud的内部网络) .
设置Cloud SQL Proxy归结为启用Cloud SQL API,为您提供对Cloud SQL API的intance访问权限的服务帐户,确保二进制文件具有执行权限(
chmod +x
),并为其提供连接字符串到Cloud SQL实例 . 您似乎在使用代理时遇到问题,因此如果您需要更多故障排除方法,可以找到它们in the documentation . 您所遵循的教程应该有关于如何执行这些步骤的详细说明 .完成所有这些操作并确保Proxy运行后,将Joomla连接到数据库应该与通过MySQL客户端执行此操作的方式类似 . 你应该将你的Joomla安装指向
localhost
(或127.0.0.1),给它一组凭据来访问数据库本身(你可以创建数据库用户via the Console),给你的Joomla数据库的名字,应该是它!不要忘记Proxy需要在TCP模式下运行!这应该像添加
=tcp:LOCAL_PORT_TO_LISTEN_ON
到连接字符串参数一样简单're passing to the Proxy. Here'是一个如何运行代理的示例:虚拟私有 Cloud (VPC)有助于提高性能 .
私有Google访问允许子网上的虚拟机(VM)实例使用内部IP地址而非外部IP地址访问Google API和服务 . 您可以使用私人Google访问权限,允许无法访问互联网的虚拟机访问Google服务 .
在这里您可以获得更多详细信息:https://cloud.google.com/vpc/docs/private-google-access