这是 NTLM 身份验证:
Get / -> HTTP 401
Get / ntlmssp_negotiate -> HTTP 401 ntlmssp_challenge
Get / ntlmssp_auth -> HTTP 200
我的问题是ntlmssp_negotiate
没有通过
预期行为:
Request
.
Response
loadbalancer:80 Get /
node1:80 Get /
.
node1:80 HTTP 401 Unauthorized
loadbalancer:80 HTTP 401 Unauthorized
loadbalancer:80 Get / ntlmssp_negotiate
node1:80 Get / ntlmssp_negotiate
.
node1:80 HTTP 401 ntlmssp_challenge
loadbalancer:80 HTTP 401 ntlmssp_challenge
loadbalancer:80 Get / ntlmssp_auth
node1:80 Get / ntlmssp_auth
.
node1:80 HTTP 200
loadbalancer:80 HTTP 200
实际行为:
Request
.
Response
loadbalancer:80 Get /
node1:80 Get /
.
node1:80 HTTP 401 Unauthorized
loadbalancer:80 HTTP 401 Unauthorized
loadbalancer:80 Get / ntlmssp_negotiate
.
loadbalancer:80 HTTP 401 ntlmssp_challenge
loadbalancer:80 Get / ntlmssp_auth
node1:80 Get / ntlmssp_auth
.
node1:80 HTTP 401 Unauthoized
loadbalancer:80 HTTP 401 Unauthoized
如您所见,负载均衡器未转发ntlmssp_negotiate
到其节点。在我看来,负载均衡器自行解决了这个问题,无需转发。
配置:
IIS 8.5
ARR 3.0
WIN 2012 R2 Standard
但这在配置 2 上没有发生。
配置2:
IIS 10
ARR 3.0
WIN 10 Enterprise
答案1
安装 ARR 后内存中可能存在一些东西......
后
c:\> iisreset
一切正常。