![](/img/trans.png)
[英]SSL: UNKNOWN_PROTOCOL with Google Cloud's SSL Load Balancing Proxy
[英]WordPress & Load balancing on Google Cloud Balancing
我正在將 WordPress 站點設置為 Google VM 實例。 我正在使用負載平衡器並設置前端來管理 SSL (https) 邊界和證書。 我使用(非短暫的)URL (xxx.xxx.xxx.xxx) 將“A”記錄設置為指向負載均衡器,並且我指定了適當的谷歌名稱服務器。 我的WordPress站點是一個實例組中的VM實例。 它應該通過 HTTP 進行通信,因為 HTTPS 在負載均衡器處終止。 (因此有效地在 HTTP 上谷歌內部流量)
WP_HOME
和WP_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.