En un futuro cercano tendré 3 servidores nginx. Uno es un proxy inverso para SSL para los otros dos. Entonces, por ejemplo, voy a:
https://www.mysitename.com/site1
Los otros dos servidores en este ejemplo son sitio1 y sitio2. Instalé el certificado SSL en el proxy y quiero usar un proxy inverso (no se requiere SSL ya que los 3 están en una red interna). Para fines de prueba, tengo nginx listen en 443 para SSL / proxy inverso, escuche puerto 8081, que es una aplicación de rieles para el sitio1, y 8082 es para el sitio2.
Tengo esto...
server {
listen 443;
server_name mysitename.com;
ssl on;
ssl_certificate ssl/mysitename.com.crt;
ssl_certificate_key ssl/mysitename.com.key;
keepalive_timeout 60;
location /site1 {
proxy_pass http://localhost:8081;
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_redirect http:// https://;
}
location /site2 {
proxy_pass http://localhost:8082;
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_redirect http:// https://;
}
}
Entonces, cuando visito www.mysitename.com/site1, quiero que básicamente devuelva lo que normalmente vendría de localhost: 8081 (o más adelante una IP interna para otro servidor).
¿Hay alguna manera de que elimine el "sitio1" de la llamada localhost? Lo que parece estar haciendo es usar localhost: 8081 / site1. Los sitios site1 y site2 son de la naturaleza "/ login / index" o "/ whatever / list", etc., sin "site1".
También hay redireccionamientos en los controladores del sitio (usando redirect_to) que van desde cosas como / login / index a / whatever / list.
¿Voy a tener que rediseñar las URL del sitio para usar el sitio1? ¿O puede el proxy NGINX resolverlo?
Gracias.
Respuestas:
Citando http://nginx.org/r/proxy_pass :
Es decir, tienes que usar
proxy_pass
así:Tenga
/
en cuenta el final de laproxy_pass
directiva: reemplazará parte del URI original que coincida con la ubicación, es decir/site1/
.fuente