nginx redirect-Schleife mit ssl
Dies ist ein sehr ähnliches problem zu Nginx-Konfiguration führt zu einer endlosen redirect-Schleife aber, dass die Diskussion nicht führten mich zu einer Antwort noch. Ich Lerne, wie man mit nginx und ssl und alles funktioniert perfekt auf den regulären http://example.com Seite der Dinge, aber wenn das routing an die https://example.com/admin ich Stelle Sie unter:
Diese Webseite hat ein redirect-Schleife
Hier ist meine config Datei:
map $uri $example_org_preferred_proto {
default "http";
~^/(images|css|javascript)/"none";
~^/admin/"https";
}
server {
listen 80;
root /usr/share/nginx/www/example.com/blog;
server_name example.com;
if ($example_org_preferred_proto = "https")
return 301 https://example.com$request_uri;
}
location ~ /{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:2368;
}
}
server {
listen 443;
ssl on;
root /usr/share/nginx/www/example.com/blog;
server_name example.com;
ssl_certificate /usr/share/nginx/<redacted>.crt;
ssl_certificate_key /usr/share/nginx/<redacted>.key;
if ($example_org_preferred_proto = "http") {
return 301 http://example.com$request_uri;
}
location ~ /{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:2368;
}
}
Im Grunde, was ich erreichen will ist, dass eine Website, die läuft normalerweise unverschlüsselt, aber wenn ich den Punkt auf meiner admin-Seite, die der browser leitet auf https und verschlüsselt mein login.
Hinweis: die Zuordnung Idee kam von http://www.redant.com.au/ruby-on-rails-devops/manage-ssl-redirection-in-nginx-using-maps-and-save-the-universe/ und scheint wie eine viel bessere Vorgehensweise als die Verwendung von rewrite
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn nginx auf einen
https
Protokoll, das es denkt, es ist immer noch mithttp
als Protokoll und wird nicht weitergeleitet mit der rest des headers, versuchen Sie, hinzufügen:in Ihrer Lage blockiert, um es zu beheben.
Ich habe gespielt, um mit anderen Antworten, aber nichts für mich gearbeitet. Dann merkte ich, seitdem ich Cloudflare nutzen, kann das problem nicht in den server, aber mit Cloudflare. Und siehe da, wenn ich mein SSL
Full (Strict)
funktioniert alles wie es soll!