NGINX轻松管理10万长连接

时间:2023-12-13 21:47:32

先说说服务为什么使用HTTPs长连接技术?有如下几个原因:
对响应时间要求较高;
服务走的是公网,客户端与服务端的TCP建立的三次握手和断开的四次握手都需要40ms左右(真实数据包计算出来的),共需要80ms左右;
每个接入方使用的IP就若干个,需要建立的请求连接有限。
使用长连接技术,可以大幅减少TCP频繁握手的次数,极大提高响应时间;同时,即使使用长连接技术,也不需要消耗很多的系统资源用来缓存sockets会话信息。

--- 基于2GB内存的CentOS 6.5 x86-64

内核参数调整:
$ /sbin/sysctl -w net.netfilter.nf_conntrack_max=102400 # 提升系统整体连接数
$ /sbin/sysctl net.netfilter.nf_conntrack_max #验证是否生效

nginx配置长连接
worker_rlimit_nofile 102400; 
http {
  keepalive_timeout 3600; --长连接timeout
  keepalive_requests 8192; --每个连接最大请求数
}
events {
  worker_connections 102400;
}