我在我的Nginx(Windows 7的1.2.6)conf文件中有以下设置:
location ~ ^/FOO/(.*)$ { proxy_pass http://server_two:8888/FOO/$1; }
在server_two我有IIS7运行使用基本身份validation的WCF服务。 当我访问http://server_two:8888/FOO/Service.svc?wsdl我得到了正确的端点。
当我访问http://myhost/FOO/Service.svc?wsdl我得到一个popup的用户/传递框。 我可以input我的证书,直到奶牛回家,而且什么也没有。 我也尝试了以下内容:
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; }
和其他几个变种,但是我还没有能够让login过程工作。 这对Nginx可能吗? 我错过了什么?
我忘了提及,IIS设置为执行Windows 401身份validation的HTTP 401挑战
默认情况下,NGINX不会在上游连接上使用keepalive,并且可能会导致身份validation问题,因为TCP连接不被维护。 我会尽量打开keepalive。 见http://nginx.org/en/docs/http/ngx_http_upstream_module.html