Okay, im Grunde möchte ich also einen Reverse-Proxy einrichten, um https-Seiten auf nginx bereitzustellen und sie über http zu Jetty umzuleiten. Das Problem besteht darin, dass das Servlet tatsächlich https erfordert und zur https-Adresse umleitet, sobald es erkennt, dass es an eine http-Seite gesendet wurde.
Zuvor hatte ich alles unter Jetty 7 zum Laufen gebracht, indem ich Folgendes hinzugefügt habe:
<Set name="forwarded">true</Set>
zu jetty.xml für SelectChannelConnector und jetzt, da ich mich für ein Upgrade auf Jetty 9 entschieden habe, kann ich scheinbar keinen Ersatz für diese Konfiguration finden und ich bin ziemlich sicher, dass es kein Problem mit meinem Nginx-Setup gibt, da es früher mit Jetty 7 einwandfrei funktioniert hat.
Hier ist ein Teil meiner Nginx-Konfiguration, um deutlicher zu machen, was ich da habe:
location / {
proxy_pass http://127.0.0.1:8080;
include /etc/nginx/proxy_params;
}
Hier ist meine Proxy_Params-Datei:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Antwort1
Dies scheint relativ einfach zu erreichen zu sein. Man muss lediglich den folgenden Teil auskommentieren /etc/jetty.xml
:
<!-- Uncomment to enable handling of X-Forwarded- style headers
<Call name="addCustomizer">
<Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
</Call>
-->
also war ich entweder blind oder in älteren Versionen von Jetty 9 gab es diese Option nicht an einer so offensichtlichen Stelle.