memcached_socket_keepalive
此指令用于启用或禁用 memcached 套接字连接的 TCP keepalive 功能。 — NGINX HTTP Core
memcached_socket_keepalive
httpserverlocation
语法memcached_socket_keepalive on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`memcached_socket_keepalive` 指令用于管理与 memcached 服务器连接的 TCP keepalive 设置。启用此指令后,NGINX 服务器会定期发送 keepalive 数据包,以确保与 memcached 服务器的空闲连接保持打开,防止因不活动而被关闭。这在 NGINX 处理大量请求且需要保持与 memcached 服务器的稳定连接以提升性能的场景中特别有用。该指令的使用具有上下文依赖性:可以在 `http`、`server` 或 `location` 级别设置,从而根据应用范围进行灵活配置。 该指令接受一个标志作为参数,可设置为 'on' 或 'off'。设置为 'on' 时会发送 keepalive 数据包,设置为 'off' 则禁用该功能。keepalive 的具体设置可能因底层操作系统的套接字选项而异,因此确保在客户端(NGINX)和服务器(memcached)两端都支持并正确配置 keepalive 十分重要,才能有效利用此功能。如果未设置,NGINX 将不会发送 keepalive 数据包,可能会导致在网络受限或长时间不活跃期间连接断开。
配置示例
http {
memcached_socket_keepalive on;
server {
location /cache {
memcached_pass 127.0.0.1:11211;
}
}
}⚠
启用 keepalive 可能会增加打开的连接数,如果不进行监控,可能耗尽系统资源。
⚠
并非所有版本的 memcached 都支持 TCP keepalive,使用前请确保兼容性。
⚠
操作系统上的 keepalive 配置可能需要调整以获得最佳性能。