
Aus irgendeinem Grund wurde mir die Aufgabe übertragen, eine URL von HTTPS auf HTTP umzuschreiben.
Hintergrund: Ich verwende Nginx als Reverse-Proxy und muss den Standortblock im 443-Block haben, während die Anwendung gemischte Ressourcenfehler ausgibt und nicht mit HTTPS funktioniert (sagt zumindest der Entwickler).
Was ich erreichen möchte: Ich möchte, dass der Nginx-Standortblock im Serverblock 44 liegt, der gesamte Datenverkehr jedoch über HTTP (80) erfolgt.
Weiß jemand, wie das geht? Ich dachte an eine URL-Umschreibung.
Und ja, ich weiß, dass es sinnvoller wäre, es im Serverblock Port 80 statt 443 zu platzieren. Senioren haben manchmal komische Ideen.
Standortblock
location /solution_tools/ {
auth_basic "Please enter your credentials";
auth_basic_user_file solutions_utils.pass;
proxy_pass http://solution_tools/;
}
Antwort1
„Die Anwendung gibt gemischte Ressourcenfehler aus und funktioniert nicht mit HTTPS (sagt zumindest der Entwickler)“
Dann sollte der Entwickler die App reparieren, da heutzutage jede Web-App, die HTTPS nicht unterstützt, völlig veraltet ist.
Wenn die App nicht repariert werden kann, dann leiten Sie nicht zu einfachem HTTP zurück, sondern machen Sie das Gegenteil: Nutzen Sie die Tatsache, dass Sie bereits einen Reverse-Proxy ausführen, optimal aus und schreiben Sie den „fehlerhaften“ HTML-Code neu, der auf absolute URLs statt auf einfaches HTTP http://www.exameple.com/
auf https verweist httpS://www.exameple.com/
. Beheben Sie so das Problem mit den gemischten Inhalten.
http://nginx.org/en/docs/http/ngx_http_sub_module.html:
location / {
sub_filter 'http://$host/' '"https://$host/';
sub_filter_once on;
}