一、问题重现流程

1、配置好tomcat后,直接加上nginx前段代理(仅配置了http代理);

2、问题一:当管理员后台上传文件时,大文件无法上传成功,出现time-out,经重复测试,发现上传时间超过1分钟以后,就会返回超时信息,小文件没有问题;

3、经调研得知nginx默认设置的http连接超时时间为75s,超过75s,会断掉当前的http连接,而大文件上传时经常会超过75s,这就导致大文件无法上传成功,当时的解决方案是,设置nginx http连接超时时间为30分钟,即参数keepalive_timeout=1800;文件上传问题基本解决;

4、项目运行2天后,发现服务器突然宕机了,重启nginx可以解决问题,但是2个小时后又再次宕机,重启nginx又解决了问题,调研了一个中午,并且查看nginx的错误日志(socket() failed (24: Too many open files) while connecting to upstream),发现问题来源与nginx的连接数(设置的默认值为1024)达到上限;

5、发现这个问题后,我就想应该把nginx的连接数调大点,于是设置 worker_connections  10240;重启nginx,短时间没有出现问题,但是运行过程中,我再次查看错误日志,发现(socket() failed (24: Too many open files) while connecting to upstream)时不时的出现;

6、此时发现调整nginx的连接数并不能完全解决问题,于是google,百度之,发现问题所在,罪魁祸首是:nginx的keepalive_timeout设置项时间太长,客户端接口访问其实是一个比较快速的过程,访问完成了已经不需要继续使用http连接了,但是由于对nginx的错误配置,导致接口访问完成后http连接并没有被释放掉,所以导致连接数越来越大,最终nginx崩溃。

二、那么这个问题应该如何解决呢?

将keepalive_timeout时间调小会导致上传操作可能无法完成;调大点的话,许多无效的http连接占据着nginx的连接数;调整keepalive_timeout设置;

keepalive_timeout相关推荐

  1. 前后端分离nginx配置,同时解决跨域问题

    背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...

  2. Linux Centos 7 安装配置nginx

    参考:https://www.cnblogs.com/boonya/p/7907999.html 环境准备: 1.安装gcc编译器 # yum install -y gcc 2.安装 pcre pcr ...

  3. 隐藏Nginx版本号的安全性与方法

    搭建好nginx或者apache,为了安全起见我们都会隐藏他们的版本号,这边讲的是nginx的版本号,如果你也想隐藏apache的版本号,那请点前面的链接.请看nginx版本号信息隐藏文章. Ngin ...

  4. Nginx配置文件nginx.conf中文详解(转)

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  5. dockefile nginx php,dockerfile自动部署nginx+php7

    FROM centos:7 MAINTAINER Carl #====================================解决依赖关系=========================== ...

  6. hive性能调优实战pdf_Nginx 性能调优实战

    来自:Linux社区 1.Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2.如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpui ...

  7. 在CentOS 6.9 x86_64上开启nginx 1.12.2的proxy_cache缓存配置

    本文研究nginx提供的缓存功能,下面是实操记录. 这篇博文基于前面文章的基础上搭建,至始至终都是root用户操作 http://blog.csdn.net/tao_627/article/detai ...

  8. 不能忽略的Nginx做web服务器的favicon.ico图像找不到问题

    我们在使用Nginx搭建HTTP的web server的过程中,一般都很顺利,默认的网站根目录一般是/usr/local/nginx/html,我们也可以正常访问到Nginx的欢迎信息,比如使用下面的 ...

  9. ab测试nginx Nginx性能优化

    转自:https://www.cnblogs.com/nulige/p/9369700.html 1.性能优化概述 在做性能优化前, 我们需要对如下进行考虑 1.当前系统结构瓶颈 观察指标 压力测试 ...

最新文章

  1. freemarker内建函数介绍
  2. 4次优化,我把 Redis 性能 “压榨” 到极致!
  3. GPB:菊粉改善糖脂代谢紊乱作用的机制(作者解读)
  4. C++之匿名对象与析构函数的关系
  5. iPad导入Mac:非常快!一气呵成,直接去photo里面选择,之后左上角倒出就好,颠覆之前windows上面的认知!
  6. 庄闲分析软件安卓版_关于公布湖南省2020年第七批软件产品评估结果的通知
  7. 如何在LOL中成功制造一颗飞弹?
  8. 欢迎各位小伙伴们关注我的公众号,可以随时跟我在微信上进行交流
  9. 在Linux调试web应用时,如何查看System.out.println的输出?
  10. 测试工具平台介绍之MeterSphere
  11. Android学习之路
  12. 医院预约挂号系统使用说明
  13. 嵌入式Linux开发环境搭建-4-嵌入式编程基础知识
  14. ldo和dcdc功耗_LDO与DC-DC对比分析
  15. textarea文本框的placeholder文字换行
  16. Linux下的lds链接脚本详解
  17. 1953年克里克和沃森发现DNA双螺旋结构
  18. MSVC编译器-C2001 常量中有换行符错误解决方法
  19. 1.Docker学习之基础知识
  20. 坚果手机如何获取root权限

热门文章

  1. maet9升级鸿蒙,华为Maet9和P9有什么区别
  2. 通过Java读取csv文件内容
  3. 微波滤波器——镜像参量法(二)
  4. 学了这么久UI,你还不知道UI设计界面包含哪些?
  5. 服务器远程备份技巧,远程备份的实现
  6. 生死看淡 不服就干!雷军这次真的被逼急了
  7. android透明背景加深,Android美化之全局透明背景
  8. AcWing 179. 八数码 178. 第K短路 (A-star)
  9. html使用mysql数据库数据类型_MySQL数据库常见的数据类型
  10. 01、开启时空克隆之旅 C++三维视频融合实战系列(时空克隆)