文章目录加载中
Nginx配置长连接
# 为什么要用长连接?
- 不需要每次 tcp 请求都经历握手和挥手的过程
- 提高响应请求响应时间,减少 time-wait 状态的 Socket
# Nginx 配置思路
先来看请求链路过程是:C 端请求 => Nginx 代理 => 上游的 Server。
所以,Nginx 要做到两头都是长连接:
- C 端请求 => Nginx 代理:nginx 扮演 server
- Nginx 代理 => 上游的 Server:naginx 扮演 client
思路和 nginx 在不同过程中的“角色”清除后,剩下就是配置了。
# Nginx 配置
# C 端到 Nginx
默认配置文件中已有:keepalive_timeout。为 0,禁用长连接;不为 0,代表长连接超时关闭时间。
除此之外,还有常用的:keepalive_requests。默认为 100,为一个长连接能接受的最大请求数。
# Nginx 到上游 Server
反向代理配置中,需要支持 keep-alive:
server {
listen 80;
server_name 193.112.241.232;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://myservers;
}
}
到上游 Server 的配置:
upstream myservers {
server 127.0.0.1:4445;
server 127.0.0.1:4446;
keepalive 100;
}
# 参考文章
- Nginx 中保持长连接的配置 - 运维记录
- HTTP 的长连接和短连接——Node 上的测试
- 《亿级流量网站架构核心技术》
本文来自心谭博客:xin-tan.com,经常更新web和算法的文章笔记,前往github查看目录归纳:github.com/dongyuanxin/blog