簡體   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