Bien, básicamente lo que quiero hacer es configurar un proxy inverso para servir páginas https en nginx y redirigirlas a Jetty usando http. El problema es que el servlet en realidad requiere https y redirige a la dirección https una vez que ve que se envió a la página http.
Anteriormente lo tenía todo ejecutándose en Jetty 7 agregando:
<Set name="forwarded">true</Set>
a jetty.xml para SelectChannelConnector y ahora que decidí actualizar a Jetty 9, parece que no puedo encontrar ningún reemplazo para esta configuración y estoy bastante seguro de que no hay ningún problema con mi configuración de nginx, ya que solía funcionar perfectamente bien con Jetty. 7.
Aquí hay una parte de mi configuración de nginx solo para aclarar las cosas que tengo allí:
location / {
proxy_pass http://127.0.0.1:8080;
include /etc/nginx/proxy_params;
}
Mientras que aquí está mi archivo proxy_params:
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;
Respuesta1
Parece ser algo bastante sencillo de lograr. Simplemente hay que descomentar la siguiente parte en /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>
-->
así que o estaba ciego o la versión anterior de Jetty 9 no tenía esta opción en un lugar tan obvio.