Proxy reverso Nginx e IIS

1

Estou usando o nginx como proxy reverso do site que está sendo executado no IIS 7.5. O site está vinculado a sub-1.foo.bar . A configuração do Nginx é assim:

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;
    }
}

O que eu quero fazer é encaminhar as solicitações que chegam em sub.foo.bar (máquina linux com nginx) para sub-1.foo.bar (máquina windows com IIS e meu site). Porém o que acontece é

  • quando eu acesso sub.foo.bar, recebo 404 páginas
  • quando eu acesso sub-1.foo.bar diretamente, recebo meu site normalmente do IIS
  • O nginx parece encaminhar solicitações normalmente para a máquina Windows
  • Não consigo ver nenhuma solicitação recebida dos logs do IIS quando acesso sub.foo.bar
  • quando eu adiciono a ligação para sub.foo.bar no IIS, o site é intermediado por proxy normalmente com nginx

Gostaria de receber algumas ideias sobre o que pode estar errado na minha configuração. Obrigado!

    
por yojimbo87 20.10.2012 / 13:30

2 respostas

2

Tente adicionar manualmente proxy_set_header Host "sub-1.foo.bar"

    
por 20.10.2012 / 15:00
2
  • when I add binding for sub.foo.bar on IIS, website gets proxied normally with nginx

O IIS precisa estar ciente de que deve responder a solicitações para o nome sub.foo.bar . Caso contrário, encaminha as solicitações para o site padrão. Você pode corrigir isso criando a ligação ou criando / editando seu site para responder por sub.foo.bar .

    
por 20.10.2012 / 14:28