我正在将所有网站移至谷歌云并遇到性能问题。
我在Compute Engine和Cloud SQL服务器上设置了一个VM实例。
使用提供的IP地址将Joomla网站从VM连接到Cloud SQL服务器。 (似乎是公共知识产权)
与使用VM本身内部的本地数据库的网站相比,性能非常慢。
所以,我的问题是,有没有办法找到连接到Cloud SQL的本地IP,因为我们的Web服务器也在Google Cloud的基础上。
或者,唯一的办法是坚持使用VM内的数据库?
我使用this guide设置了云代理。
现在可以使用代理连接到mysql提示符。
但仍然找不到让joomla使用这个云代理连接数据库的方法。
答案 0 :(得分:1)
从Compute实例连接到Cloud SQL实例的最快,最简单,最安全的方法是使用Cloud SQL Proxy。这有多种原因,但主要有以下几个原因:
安全连接:代理使用带有128位AES密码的TLS 1.2自动加密进出数据库的流量; SSL证书用于验证客户端和服务器身份。
更轻松的连接管理:代理使用Google Cloud SQL处理身份验证,无需提供静态IP地址。
还有一个事实是,您只需要一个静态和少量的实例(在您的情况下为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数据库提供数据。的名字,应该是它!
不要忘记代理需要在TCP模式下运行!这应该就像将=tcp:LOCAL_PORT_TO_LISTEN_ON
添加到您传递给代理服务器的连接字符串参数一样简单。以下是如何运行代理的示例:
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
答案 1 :(得分:0)
虚拟私有云(VPC)有助于提高性能。
私有Google访问允许子网上的虚拟机(VM)实例使用内部IP地址而非外部IP地址访问Google API和服务。您可以使用私有Google访问权限,允许无法访问互联网的虚拟机访问Google服务。
您可以在此处获得更多详细信息:https://cloud.google.com/vpc/docs/private-google-access