memc_ignore_client_abort
memc_ignore_client_abort 指令允许 NGINX 继续处理发送到 memcached 的请求,即使客户端提前断开连接。
Extended version of the standard NGINX memcached module
·
locationif in location
语法memc_ignore_client_abort on | off;
默认值off
上下文location, if in location
参数flag
说明
memc_ignore_client_abort 指令用于管理客户端在完整响应发送之前从服务器断开连接时 NGINX 的行为。默认情况下,NGINX 在检测到客户端已关闭连接时,可能会中止对包括 memcached 在内的上游服务器的请求。启用此指令可以防止这种中止,确保 NGINX 无论客户端的连接状态如何都会完成对 memcached 服务器的请求。在后端操作很重要且对响应时间要求不高的场景(例如数据缓存)中,这一点尤其有用。
当设置为 'on' 时,memc_ignore_client_abort 指令会告知 NGINX 对 memcached 命令忽略客户端断开连接。这意味着即使客户端在服务器响应之前停止接收,memcached 操作仍然会被执行。该指令的影响可能导致资源使用增加,因为 NGINX 会继续处理可能不必要的上游请求,但它保证了重要的缓存操作不会因客户端行为而被无意跳过。
总之,虽然该指令通过将客户端行为与服务器操作解耦来增强与 memcached 交互的鲁棒性,但应谨慎使用,权衡资源使用和后端响应性的取舍。
配置示例
location /example {
set $memc_key $arg_key;
memc_pass 127.0.0.1:11211;
memc_ignore_client_abort on;
}⚠
请记得监控启用该指令后的资源影响,因为它可能导致后端产生未被利用的操作。
⚠
如果您的应用严重依赖实时客户端反馈,请避免启用此指令,因为它可能导致产生陈旧的操作。