如何将请求代理到受 NTLM 保护的网站,例如团队基金会 and 共享点?我不断得到401 身份验证错误.
根据这篇 Microsoft TechNet 文章 https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx,你不能。
Microsoft NTLM 使用有状态 HTTP,这违反了 HTTP/1.1 RFC。它依赖于身份验证(涉及握手和几个初始 401 错误的事件)以及通过从客户端到服务器的完全相同的连接来完成后续连接。这使得 HTTP 代理几乎不可能,因为每个请求通常都会通过一个新的连接或从开放连接池中挑选的随机连接。不过这是可以做到的。
NGiNX 显然通过“ntlm”选项支持这一点,但这是他们商业产品的一部分。 Apache HTTPD 似乎为此提供了一些实验性补丁,但这需要重建 Apache。 TinyProxy 也不支持这一点。HAProxy 来救援!
这是一个有效的运行配置示例 - 这是一个相当简单的设置,具有单个后端服务器:
backend backend_tfs
server static teamfoundation.mycompany.com:8080 check maxconn 3
mode http
balance roundrobin
option http-keep-alive
option prefer-last-server
timeout server 30s
timeout connect 4s
frontend frontend_tfs
# You probably want something other than 127.0.0.1 here:
bind 127.0.0.1:8080 name frontend_tfs
mode http
option http-keep-alive
timeout client 30s
default_backend backend_tfs
这里重要的选项是http 保持活动 and 首选最后服务器.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)