keepalive_disable
`keepalive_disable` 指令为指定的用户代理禁用 HTTP 持久连接。 — NGINX HTTP Core
keepalive_disable
httpserverlocation
语法keepalive_disable user_agent_string;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1-2
说明
`keepalive_disable` 指令在 NGINX 中用于根据发起请求的客户端的用户代理字符串控制 HTTP 持久连接的行为。指定该指令时,可以列出一个或多个将被拒绝使用持久连接的用户代理。禁用持久连接可能会导致延迟增加,因为每个请求将需要建立并拆除新的 TCP 连接,而不是重用现有连接。 该指令接受一个或多个参数,这些参数应为指定用户代理子字符串的字符串。如果客户端的用户代理匹配任何指定的子字符串,则该客户端不会使用持久连接。这对于处理已知在持久连接方面存在问题的客户端(例如旧浏览器或特定的爬虫)非常有用。该指令可在 `http`、`server` 或 `location` 上下文中使用,根据需要可灵活应用。 当该指令在未提供任何参数的情况下定义时,实际上不会改变行为,默认仍允许持久连接。相反,如果提供了一个或多个字符串,则会创建一条规则,根据指定的用户代理评估传入请求以确定是否应禁用持久连接。此指令对于调整服务器性能和资源管理很有帮助,尤其是在某些客户端可能导致性能问题或资源紧张的情况下。
配置示例
http {
keepalive_disable "MSIE";
keepalive_disable "Opera";
}
server {
location / {
keepalive_disable "FacebookExternalHit";
}
}⚠
注意精确的 user agent strings;部分匹配可能导致意外结果。
⚠
如果忽略 keep-alive,为这些客户端添加过多的 user agents 可能会降低性能。