
Estoy usando nginx como proxy inverso para un sitio web que se ejecuta en IIS 7.5. El sitio web está obligado a sub-1.foo.bar
. La configuración de Nginx se ve así:
server {
listen 80;
server_name sub.foo.bar;
location / {
proxy_pass http://sub-1.foo.bar;
proxy_set_header Host $host;
proxy_set_header X-Accel-Expires 0;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Lo que quiero hacer es reenviar las solicitudes que llegan a sub.foo.bar
(máquina Linux con nginx) a sub-1.foo.bar
(máquina Windows con IIS y mi sitio web). Sin embargo lo que sucede es
- cuando accedo a sub.foo.bar, aparece la página 404
- cuando accedo directamente a sub-1.foo.bar, mi sitio web se sirve normalmente desde IIS
- nginx parece reenviar solicitudes normalmente a la máquina con Windows
- No puedo ver ninguna solicitud entrante de los registros de IIS cuando accedo a sub.foo.bar
- cuando agrego enlace para sub.foo.bar en IIS, el sitio web se proxy normalmente con nginx
Agradecería cualquier idea sobre lo que podría estar mal con mi configuración. ¡Gracias!
Respuesta1
Intente agregar manualmente proxy_set_header Host "sub-1.foo.bar"
Respuesta2
- cuando agrego enlace para sub.foo.bar en IIS, el sitio web se proxy normalmente con nginx
IIS debe ser consciente de que debe responder a las solicitudes de nombre sub.foo.bar
. De lo contrario, enruta las solicitudes al sitio web predeterminado. Puede solucionar este problema creando el enlace o creando/editando su sitio web para responder a sub.foo.bar
.