Назад | Перейти на главную страницу

Как заставить Nginx передавать аутентификацию в IIS в качестве обратного прокси?

В моем файле конфигурации Nginx (1.2.6 в Windows 7) есть следующие настройки:

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

На server_two У меня есть IIS7, на котором запущена служба WCF, использующая обычную проверку подлинности. Когда я приезжаю http://server_two:8888/FOO/Service.svc?wsdl Я получаю правильную конечную точку.

Когда я приезжаю http://myhost/FOO/Service.svc?wsdl Я получаю всплывающее окно пользователя / пароля. Я могу вводить свои учетные данные, пока коровы не вернутся домой, а все еще ничего. Я также пробовал следующее:

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

И несколько других вариантов, но я пока не могу заставить работать процесс входа в систему. Возможно ли это с Nginx? Что мне не хватает?

ОБНОВИТЬ:

Я забыл упомянуть, что IIS настроен на выполнение HTTP 401 Challenge для проверки подлинности Windows.

По умолчанию NGINX не использует поддержку активности для восходящих соединений, и это может вызвать проблему аутентификации, поскольку TCP-соединения не поддерживаются. Я бы попробовал включить поддержку активности. Видеть http://nginx.org/en/docs/http/ngx_http_upstream_module.html