
nginx的keepalive和keepalive_requests
发布日期:2021-05-08 20:43:04
浏览次数:30
分类:精选文章
本文共 1317 字,大约阅读时间需要 4 分钟。
为了在Nginx作为反向代理时支持长连接,需要确保客户端与Nginx以及Nginx与后端服务器之间的连接均为长连接。具体来说,可以通过以下方式实现:
首先,确保客户端与Nginx之间的连接是长连接。Nginx支持通过keepalive_timeout参数设置客户端长连接的超时值,默认为75秒。该参数可配置为0以禁用长连接,其他情况下默认启用keep-alive机制。此外,keepalive_requests参数用于限制每个长连接上处理的最大请求数量,默认为10000,用于防止资源耗尽。
其次,确保Nginx与后端服务器之间的连接也是长连接。默认情况下,Nginx使用短连接处理请求,这可能导致高负载下后端服务器出现大量TIME_WAIT。此时,需在Nginx配置中添加以下设置:
http { keepalive_timeout 120s 120s; keepalive_requests 10000;}upstream BACKEND { server 192.168.0.1:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.0.2:8080 weight=1 max_fails=2 fail_timeout=30s; keepalive 300;}server { listen 8080 default_server; server_name ""; location / { proxy_pass http://BACKEND; proxy_set_header Host $Host; proxy_set_header x-forwarded-for $remote_addr; proxy_set_header X-Real-IP $remote_addr; add_header Cache-Control no-store; add_header Pragma no-cache; proxy_http_version 1.1; proxy_set_header Connection "Keep-Alive"; }}
此外,确保HTTP协议版本为1.1,通过proxy_http_version 1.1设置,并在响应头中设置Connection字段。同时,建议在后端服务器支持长连接的情况下,避免频繁断开连接。
在实际应用中,keepalive参数设置需谨慎,应根据QPS和平均响应时间估算所需长连接数量,通常设置为连接数量的10%到30%。例如,10000 QPS和100ms响应时间下的长连接数量约为1000,建议keepalive设置为100到300。
避免频繁关闭长连接会导致TIME_WAIT问题,需确保后端服务器支持长连接。若后端服务器未配置正确,可能导致大量TIME_WAIT。
本文内容经过优化,旨在提供清晰易懂的技术指导,帮助管理员实现高效的长连接配置。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月19日 06时06分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java反序列化和JNDI注入漏洞案例实战
2023-01-28
Java反序列化测试
2023-01-28
JAVA反序列化漏洞修复解决方法
2023-01-28
java反应式框架Reacto中的Mono和Fiux
2023-01-28
java反编译工具--jd-gui
2023-01-28
java发送短信
2023-01-28
java发送邮件工具
2023-01-28
java取整和java四舍五入方法
2023-01-28
Java可变参数列表
2023-01-28
Java各中依赖包介绍
2023-01-28
Java合同管理(源码+mysql+文档)
2023-01-28
Java合同管理系统(源码+mysql+文档)
2023-01-28
Java合肥市公务员报名管理系统(源码+mysql+文档)
2023-01-28
Java合肥惠康养老平台app(源码+mysql+文档)
2023-01-28
Java后台处理ajax跨域请求处理
2023-01-28
Java后台测试技巧
2023-01-28
java后台生成截图-(DJNativeSwing版本)
2023-01-28
java后台通过http请求下载文件
2023-01-28
Java后端使用socketio,实现小程序答题pk功能
2023-01-28
Java后端开发书架
2023-01-28