Proxy inverso de Nginx e IIS

Proxy inverso de Nginx e IIS

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.

información relacionada