Como faço para que o Nginx passe a autenticação para o IIS como um proxy reverso?

3

Eu tenho a seguinte configuração no meu arquivo conf Nginx (1.2.6 no Windows 7):

location ~ ^/FOO/(.*)$ {
    proxy_pass    http://server_two:8888/FOO/$1;
}

Em server_two , tenho o IIS7 executando um serviço WCF que usa autenticação básica. Quando visito http://server_two:8888/FOO/Service.svc?wsdl , obtenho o endpoint correto.

Quando visito http://myhost/FOO/Service.svc?wsdl , recebo uma caixa de usuário / senha que aparece. Eu posso inserir minhas credenciais até as vacas chegarem em casa e ainda nada. Eu também tentei o seguinte:

location ~ ^/FOO/(.*)$ {
    proxy_pass    http://server_two:8888/FOO/$1;
    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;
}

E várias outras variantes, mas ainda não consegui fazer o processo de login funcionar. Isso é possível com o Nginx? O que estou perdendo?

ATUALIZAÇÃO:

Esqueci de mencionar que o IIS está configurado para fazer um desafio HTTP 401 para a autenticação do Windows

    
por Wayne Werner 27.12.2012 / 22:07

1 resposta

2

Por padrão, o NGINX não usa keep-alive em conexões upstream e isso pode causar o problema de autenticação, já que as conexões TCP não são mantidas. Eu tentaria ligar o keepalive. Consulte o link

    
por 24.01.2013 / 00:59