ntlm
'ntlm' 指令在 NGINX 中为 upstream 连接启用 NTLM 身份验证,从而允许高效重用已认证的连接。
说明
'ntlm' 指令用于在 NGINX 中在代理到 upstream 服务器时实现 NTLM (NT LAN Manager) 身份验证。当客户端发起包含 'Authorization' 头且其值为 'Negotiate' 或 'NTLM' 的请求时,与 upstream 服务器的连接会绑定到该客户端连接。此行为确保来自同一客户端的后续请求使用相同的 upstream 连接,从而保留身份验证上下文并减少重复身份验证带来的开销。
'ntlm' 指令的可扩展性还体现在其能够接受一个可选参数,用于指定应缓存的与 upstream 服务器的最大连接数,这在高负载下有助于提高资源利用效率和性能。通过利用经过认证连接的持久性,NGINX 可以有效管理资源并在客户端与服务器交互中保持无缝连续性。此外,该指令还支持超时配置,确保基于配置的阈值适当地管理空闲连接,这有助于优化后端资源使用并维持对用户的响应性。
因此,实现 'ntlm' 指令需要仔细配置以定义预期的连接行为和性能指标。该指令可以与其他相关参数(如 'ntlm_timeout')配合使用,以根据具体应用需求进一步定制其行为。总体而言,正确使用 'ntlm' 指令能为在基于 NGINX 的代理环境中处理已认证请求提供稳健的解决方案。
配置示例
upstream http_backend {
server 127.0.0.1:8080;
ntlm 100; # Maximum of 100 cached connections
}
server {
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}确保上游服务器支持 NTLM 身份验证,因为在不支持的服务器上使用此指令可能导致身份验证失败。
错误配置 'connections' 参数(设置过高或过低)可能导致资源消耗过多或连接处理失败。
将 'ntlm' 与 'proxy_http_version 1.1' 和 'proxy_set_header Connection ""' 配合使用对于正确维持持久连接至关重要。