Nginx schreibt die URL neu, weil https nicht funktioniert

Nginx schreibt die URL neu, weil https nicht funktioniert

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;
}

verwandte Informationen