2016-05-17 61 views
4

我已經將標準GCP負載平衡器設置爲指向我的實例組。它通過實例上的同一個端口進行通信。我想將http重定向到https。我通常會在nginx或apache上對該實例執行此操作,但由於其https已經來自負載平衡器,因此無法工作。如何使用GCP Load Balancer將所有HTTP請求重定向到HTTPS

有沒有一種方法來重寫URL,如果我使用nginx and apache在GCP的Load Balancer中負載均衡?或者我應該轉發http和https到實例,並讓實例像往常一樣處理重寫。我是GCP新手,感謝您。

+0

不斷想出解決辦法? –

+1

當然,我添加這個賞金後立刻找到了一個很好的答案!任何人想要做一個很好的寫作http://serverfault.com/questions/733166/redirect-all-http-traffic-to-https-when-using-the-https-load-balancer-on-googl或只是鏈接這個問題可以有我的觀點! –

回答

3

你可以像Nginx一樣設置它。當您看到不是https的端口上的流量時,會將其重定向到HTTP。

要做到這一點,你可以用X-Forwarded-Proto頭使用該業務進來。在您的服務器,其包含了協議,你可以簡單地查找具有http頭流量和升級要求HTTPS

最常用的方法是使用301重定向,但這不是一個很好的做法。應該使用HTTP 426升級請求標頭。

瞭解更多:Is HTTP status code 426 Upgrade Required only meant signal an upgrade to a secure channel is required?

RFC文檔:http://tools.ietf.org/html/rfc2616#section-14.42

相關問題