单独 SQL 服务器在 Google 云中的速度太慢

Separate SQL server speed too slow in Google Cloud

我正在将所有网站移动到 google 云端,但遇到了性能问题。

我在 Compute Engine 和云 SQL 服务器上设置了一个 VM 实例。

并使用提供的 IP 地址将 Joomla 网站从 VM 连接到云端 SQL 服务器。 (好像是publicIP)

与在 VM 本身内部使用本地数据库的网站相比,性能确实很慢。

所以,我的问题是,有没有办法找到本地 IP 以连接到云 SQL,因为我们的 Web 服务器也在 Google 云基础设施本身上。

或者,唯一的办法就是坚持使用 VM 中的数据库?

更新

我使用 this guide 设置云代理。

现在可以使用代理连接到 mysql 提示。

但是还是找不到让joomla使用这个云代理连接数据库的方法

虚拟私有云 (VPC) 有助于提高性能。

私有 Google 访问使子网上的虚拟机 (VM) 实例能够使用内部 IP 地址而不是外部 IP 地址访问 Google API 和服务。您可以使用专用 Google 访问权限来允许无法访问 Internet 的 VM 访问 Google 服务。

在这里您可以获得更多详细信息:https://cloud.google.com/vpc/docs/private-google-access

从计算实例连接到云 SQL 实例的最快、最简单、最安全的方法是使用 Cloud SQL Proxy。造成这种情况的原因有很多,但主要有以下几点:

Secure connections: The proxy automatically encrypts traffic to and from the database using TLS 1.2 with a 128-bit AES cipher; SSL certificates are used to verify client and server identities.

Easier connection management: The proxy handles authentication with Google Cloud SQL, removing the need to provide static IP addresses.

还有一个事实是,您只需要静态和少量实例(在您的情况下为 1 个)连接到数据库,因此您真的不需要过于复杂的设置,您可以将此二进制文件放入你的实例,运行 它作为一个守护进程,并立即有一个快速通道到你的云 SQL 实例(我在这里使用“快速通道”,因为流量将通过 Google 云的内部网络).

设置云 SQL 代理归结为启用云 SQL API,让您的实例服务帐户访问云 SQL API,确保二进制文件具有执行权限 (chmod +x),并将连接字符串提供给 Cloud SQL 实例。您似乎在使用代理时遇到问题,因此如果您需要更多故障排除想法,可以找到它们 in the documentation。您所遵循的教程应该包含有关如何执行这些步骤的详细说明。

完成所有这些并确保代理处于 运行ning 之后,将 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