ruby on rails - Nginx proxy https a http en el puerto no estándar?
ruby-on-rails (2)
El problema proviene de la línea -
proxy_set_header Host $host;
Su servidor web (WEBrick) a su vez lo incluye al emitir la respuesta de redireccionamiento.
Puede cambiarlo para incluir el puerto no estándar -
proxy_set_header Host $host:$server_port;
que debería resolver esto.
Tengo nginx configurado para proxy de tráfico https a un servidor http que se ejecuta en la misma máquina.
Todo funciona bien cuando configuro nginx para escuchar / proxy desde el puerto https 443. Pero realmente quiero escuchar en un puerto no estándar. Cuando configuro un puerto no estándar, nginx recibe la solicitud y la envía a mi servidor http, como debería, pero el servidor responde con un redireccionamiento HTTP de vuelta al navegador que le indica que redirija a ''https: // servidor. com / someurl ". Quiero decir que la URL de redirección se ve bien, excepto que falta el puerto correcto. ¿Me falta un encabezado HTTP que necesito configurar en el proxy?
Específicamente estoy ejecutando una instancia http de Pistas; http://getontracks.org . Si es importante
Mi configuración del servidor nginx (trabajando en puerto estándar):
location /{
proxy_pass http://localhost:50000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
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 https;
proxy_redirect off;
}
Esto es más un problema de la aplicación que se ejecuta en el host ascendente (Pistas), no de la configuración del servidor web (a menos que la configuración del servidor web ascendente contenga reglas de reescritura, por supuesto). Diferentes aplicaciones manejan estas situaciones de manera diferente: algunas requieren un parámetro de configuración explícito que les indique la URL real a la que se puede llegar a la aplicación, algunas usan ciertos encabezados HTTP, otras usan otras cabeceras HTTP.
Como Tracks es una aplicación de Rails, es posible que termine obteniendo respuestas más informadas si agrega una etiqueta correspondiente ruby-on-rails a su pregunta.