Nginx – 使用身份validation向IIS6反向代理

为了testing目的,我已经为IIS6服务器设置了一个nginx反向代理,这工作正常。

但是,当我尝试在IIS6网站上使用“Windows身份validation”,浏览器身份validationinput不会在那里。

经过一番阅读,我发现明显的:) nginx不支持HTTP / 1.1的反向代理呢!

我的问题:有没有人知道这种types的请求“解决方法”?

谢谢

我已经部分在这里的testing环境中工作。

背景

我们有IIS6服务于我们的Intranet CMS(CMS是一个ISAPI插件)。 这是与IIS中的站点设置集成Windows身份validation(安全和用户个性化)。

我想要启用gzip压缩function,但由于我们在CMS中启用了一些function,因此无法通过IIS的gzip设置(如果我们这样做,每次向CMS请求都会崩溃)。

所以,我目前正在testing一个设置,使用一个nginx反向代理服务器来执行内容压缩。

什么工作/什么没有?

通过这个设置IE6 / 7身份validation仍然正常工作,我没有做任何改变。

然而Firefox需要改变。 之前,如果没有nginx,Firefox network.automatic-ntlm-auth.trusted-uris设置为允许我们的Intranet服务器执行透明的NTLM身份validation。 一旦nginx是混合的一部分,你只会重复显示网站login框,您的凭据永远不会被接受。 但是,将intranet服务器添加到network.negotiate-auth.trusted-uris解决了此问题(对于Windows上的Firefox,而不是OS X上的)。 看来authentication方法可能稍微改变了一点? 哪里允许NTLM auth之前工作罚款现在似乎在做SPENGO?

所以在IIS6之前的nginx目前的情况已经给我留下了:

作品

  • XP上的IE6
  • XP上的IE7
  • XP上的FF3.5(更改about:config后)

不起作用(凭据从不接受)

  • 在OS X上的FF3.5
  • OS X上的Safari 3
  • XP上的Safari 4
  • 黑莓8700(模拟器)
  • 黑莓9000(模拟器)

猜测为什么我的(部分)工作,你的不…可能是关键的代理auth握手,这是在我的configuration,但从你的失踪? 比如转发真实的客户端IP? 如果你想尝试一下,我的nginxconfiguration的相关服务器部分如下。

 server { listen 80; server_name testintralive; location / { proxy_pass http://localhost:81; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; proxy_connect_timeout 30; proxy_read_timeout 120; } } 

唯一的办法就是使用基本authentication,等待igor完成下一个版本。 下一个版本将解决这个问题(希望)