2016-05-17 10 views
4

Ich habe den standardmäßigen GCP-Lastenausgleich so eingerichtet, dass er auf meine Instanzgruppe verweist. Es spricht über denselben Port der Instanz. Ich möchte http zu https umleiten. Normalerweise würde ich dies in Nginx oder Apache auf der Instanz tun, aber das wird nicht funktionieren, da seine https bereits aus dem Load Balancer.So leiten Sie alle HTTP-Anforderungen mit GCP Load Balancer an HTTPS weiter

Gibt es eine Möglichkeit, die URL ähnlich wie wenn ich nginx and apache zum Lastenausgleich in GCP Load Balancer zu schreiben? oder soll ich http und https an die Instanz weiterleiten und die Instanz so behandeln lassen, wie ich es normalerweise tun würde. Ich bin neu bei GCP danke im Voraus.

+0

das jemals herausgefunden? –

+1

Natürlich fand ich direkt nach dem Hinzufügen dieses Bounty eine tolle Antwort! Jeder, der eine schöne write-up von http://serverfault.com/questions/733166/redirect-all-http-traffic-to-https-when-aus-dem-https-load-balancer-on-googl oder einfach machen möchte verlinke diese Frage dort kann meine Punkte haben! –

Antwort

3

Sie können es genauso einrichten wie Nginx. Wenn Sie auf einem Port keinen Traffic sehen, der kein https ist, leiten Sie ihn zu HTTPs um.

Um dies zu tun, können Sie X-Forwarded-Proto Header verwenden, die das Protokoll enthält mit dem der Verkehr kam. Auf dem Server, können Sie einfach für den Verkehr suchen, die http Header hat und diese Anforderung an HTTPS aktualisieren.

Am häufigsten verwendeten Weg ist 301 Redirect zu verwenden, aber das ist keine großartige Übung. Man sollte HTTP 426 Upgrade Request Header verwenden.

mehr lesen: Is HTTP status code 426 Upgrade Required only meant signal an upgrade to a secure channel is required?

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