设为首页 收藏本站
查看: 2016|回复: 0

[经验分享] http的keepalive参数设置策略

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-25 09:03:38 | 显示全部楼层 |阅读模式
1.项目环境:nginx(前段代理,仅作代理用途)+3个tomcat(都在同一个服务器上),做的web项目
2.涉及到的业务逻辑:文件上传(可能有大文件,比如说android游戏,100m);客户端接口请求;网站后台管理
3.问题重现流程:
   3.1 配置好tomcat后,直接加上nginx前段代理(仅配置了http代理)
   3.2 问题一:当管理员后台上传文件时,大文件无法上传成功,出现time-out,经重复测试,发现上传时间超过1分钟以后,就会返回超时信息,小文件没有问题
   3.2 经调研得知nginx默认设置的http连接超时时间为75s,超过75s,会断掉当前的http连接,而大文件上传时经常会超过75s,这就导致大文件无法上传成功,当时的解决方案是,设置nginx http连接超时时间为30分钟,即参数keepalive_timeout=1800;文件上传问题基本解决;
   3.4项目运行2天后,发现服务器突然宕机了,重启nginx可以解决问题,但是2个小时后又再次宕机,重启nginx又解决了问题,调研了一个中午,并且查看nginx的错误日志(socket() failed (24: Too many open files) while connecting to upstream),发现问题来源与nginx的连接数(设置的默认值为1024)达到上限
   3.5发现这个问题后,我就想应该把nginx的连接数调大点,于是设置 worker_connections  10240;重启nginx,短时间没有出现问题,但是运行过程中,我再次查看错误日志,发现(socket() failed (24: Too many open files) while connecting to upstream)时不时的出现
   3.6 此时发现调整nginx的连接数并不能完全解决问题,于是google,百度之,发现问题所在,罪魁祸首是:nginx的keepalive_timeout(参看http://fengzheng369.blog.163.com ... 792012418103813580/ )设置项时间太长,客户端接口访问其实是一个比较快速的过程,访问完成了已经不需要继续使用http连接了,但是由于对nginx的错误配置,导致接口访问完成后http连接并没有被释放掉,所以导致连接数越来越大,最终nginx崩溃。

4.那么这个问题应该如何解决呢?
将keepalive_timeout时间调小会导致上传操作可能无法完成;调大点的话,许多无效的http连接占据着nginx的连接数
这貌似是一个两难的问题

先写到这,正在寻找解决方案


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118451-1-1.html 上篇帖子: keepalived配置文件详解 下篇帖子: Keepalived+lvs/DR 的 HA 集群、Keepalived实现web服务的HA集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表