HTTP 协议的 KeepAlive 意图在于连接复用,同一个连接上串行方式传递请求 - 响应数据
TCP 的 KeepAlive 机制意图在于保活、心跳,检测连接错误。
TCP
Linux相关的TCP保活参数在/etc/sysctl.conf
- tcp_keepalive_time,单位:秒,表示发送的探测报文之前的连接空闲时间,默认是7200s。
- tcp_keepalive_intvl,单位:秒,表示两次探测报文之间的间隔时间,默认是75s
- tcp_keepalive_probes,单位,秒,表示探测的次数,默认是9
HTTP
当nginx设置了keepalive等待下一次的请求时,同时也会设置一个最大等待时间,这个时间是通过选项keepalive_timeout来配置的,如果配置为0,则表示关掉[[keep-alive]]。 nginx 默认 keepalive_timeout 75s