Ich habe in diesen Tagen begonnen, mit App Engine auf Google Cloud Platform zu spielen. Ich verwende eine flexible Umgebung mit einer benutzerdefinierten Laufzeit, um PHP in Docker auszufuhren. App Engine liefert Inhalte sowohl uber HTTP als auch HTTPS aus. Ich habe versucht, HTTP zu deaktivieren oder den HTTP-Traffic einfach uber die Web-UI auf HTTPS umzuleiten, aber leider ist das derzeit nicht moglich. Ja, du hast richtig gehort, das grundlegende Feature wird nicht unterstutzt!

Ich uberprufte die Dokumentation (https://cloud.google.com/appengine/docs/standard/php7/application-security) und versuchte, eine 301-Weiterleitung uber die app.yaml-Datei einzurichten. Hier ist, was ich versuchte:

handlers:
- url: /.*
  script: auto
  secure: always
  redirect_http_response_code: 301

Ich deployte eine neue Version meiner App, aber App Engine liefert immer noch uber HTTP aus und leitet bei einer unsicheren Verbindungsanfrage nicht auf HTTPS um.

Diesmal entschied ich mich, nginx eine Chance zu geben. Ich offnete meine nginx-app.conf-Datei und schrieb dies:

server_name _;

if ($http_x_forwarded_proto = “http”) { return 301 https://$host$request_uri; }

Und Voila! Es funktionierte perfekt. Wie ich diesen Prozess versuchte und verstand, kannst du unten sehen.

  ~ curl -I http://ercan-ermis.ew.r.appspot.com/
HTTP/1.1 301 Moved Permanently
Date: Thu, 15 Apr 2021 07:03:34 GMT
Content-Type: text/html
Content-Length: 178
Server: nginx
Location: https://ercan-ermis.ew.r.appspot.com/
Via: 1.1 google