繁体   English   中英

WordPress & 谷歌云平衡负载平衡

[英]WordPress & Load balancing on Google Cloud Balancing

我正在将 WordPress 站点设置为 Google VM 实例。 我正在使用负载平衡器并设置前端来管理 SSL (https) 边界和证书。 我使用(非短暂的)URL (xxx.xxx.xxx.xxx) 将“A”记录设置为指向负载均衡器,并且我指定了适当的谷歌名称服务器。 我的WordPress站点是一个实例组中的VM实例。 它应该通过 HTTP 进行通信,因为 HTTPS 在负载均衡器处终止。 (因此有效地在 HTTP 上谷歌内部流量)

WP_HOMEWP_SITEURL的 WordPress 值应该是多少,请记住它们在负载均衡器后面和 HTTPS/SSL 边界后面?

在大多数情况下,您不需要在正确设置WP_SITEURL后更改WP_HOME和 WP_SITEURL。 将它们指定为正常https://www.example.com 换成你的真实网站URL。

当 WordPress 在负载均衡器后面运行时,需要修改wp-config.php以处理 88338288002 HTTP header HTTP_X_FORWARDED_FORWARDED_PROTO以检测客户端连接到负载均衡器 88338288002 靠近 wpconfig 的底部wp-config.php :

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
{
       $_SERVER['HTTPS']='on';
}

接下来,如果您正在记录客户端访问,则需要记录正确的客户端 IP 地址。 负载均衡器会将其 IP 地址添加为客户端,使您的日志报告负载均衡器 IP 地址而不是客户端的 IP 地址。

将以下几行放在前面几行之后(实际上无关紧要):

if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) )
{
        $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

        $_SERVER['REMOTE_ADDR'] = trim($ips[0]);
}
elseif ( isset($_SERVER['HTTP_X_REAL_IP']) && !empty($_SERVER['HTTP_X_REAL_IP']) )
{
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
} elseif ( isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) )
{
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CLIENT_IP'];
}

重要的提示:

您提到了“实例组”。 对于托管实例组 (MIG),如果重新创建实例,您对实时运行的 VM 所做的任何更改都将丢失。 这包括对 WordPress 本身的所有更改。 您必须使用unmanaged instance group或重新创建用于managed instance group实例组的映像。 也有例外,比如使用共享的独立MySQL服务器,所有配置文件都存储在Cloud Storage或NFS上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM