• 问题描述
  • 解决方法
  • 提高nginx网络吞吐量buffers优化指令说明
  • nginx代理超时配置
  • nginx缓存区大小设置

问题描述

后台server服务响应时间正常,但是请求没有打到服务器,在nginx很慢才看到error日志,如下:

2018/07/26 10:17:42 [error] 45762#0: *7489 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.2.127.6, server: et_dev.rong360.com, request: “GET /data/names HTTP/1.1”, upstream: “uwsgi://127.0.0.1:8528”, host: “et_dev.rong360.com”, referrer: “http://et_dev.rong360.com/static/html/index.html”

解决方法

添加或修改nginx反向代理超时时间,如下:

server {listen       80;server_name  XXX.rong360.com;large_client_header_buffers 4 16k;     # 读取大型客户端请求头的缓冲区的最大数量和大小client_max_body_size 300m;     #设置nginx能处理的最大请求主体大小。client_body_buffer_size 128k;  #请求主体的缓冲区大小。 proxy_connect_timeout 600;proxy_read_timeout 600;proxy_send_timeout 600;proxy_buffer_size 64k;proxy_buffers   4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;……location / {uwsgi_send_timeout 600;        # 指定向uWSGI传送请求的超时时间,完成握手后向uWSGI传送请求的超时时间。uwsgi_connect_timeout 600;   # 指定连接到后端uWSGI的超时时间。uwsgi_read_timeout 600;        # 指定接收uWSGI应答的超时时间,完成握手后接收uWSGI应答的超时时间。……}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

提高nginx网络吞吐量buffers优化指令说明

large_client_header_buffers
此指令规定了用于读取大型客户端请求头的缓冲区的最大数量和大小。 这些缓冲区仅在缺省缓冲区不足时按需分配。 当处理请求或连接转换到保持活动状态时,释放缓冲区。

client_max_body_size

此指令设置NGINX能处理的最大请求主体大小。 如果请求大于指定的大小,则NGINX发回HTTP 413(Request Entity too large)错误。 如果服务器处理大文件上传,则该指令非常重要。

client_body_buffer_size

此指令设置用于请求主体的缓冲区大小。 如果主体超过缓冲区大小,则完整主体或其一部分将写入临时文件。 如果NGINX配置为使用文件而不是内存缓冲区,则该指令会被忽略。 默认情况下,该指令为32位系统设置一个8k缓冲区,为64位系统设置一个16k缓冲区。 该指令在NGINX配置的http,server和location区块使用。

nginx代理超时配置

proxy_connect_timeout
默认值60s, nginx连接到后端服务器的连接超时时间,发起握手等候响应超时时间。

proxy_read_timeout

连接成功后,等候后端服务器响应时间。其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)。

proxy_send_timeout

后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据。

注:nginx使用proxy模块时,默认的读取超时时间是60s。

nginx缓存区大小设置

proxy_buffer_size
nginx可从服务器一次接收的最大数据大小

proxy_buffers

该指令设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里. 默认情况下,一个缓冲区的大小等于内存页面大小,可能是4K也可能是8K,这取决于平台。

proxy_busy_buffers_size

proxy_busy_buffers_size不是独立的空间,他是proxy_buffers和proxy_buffer_size的一部分。nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。

proxy_max_temp_file_size和proxy_temp_file_write_size

临时文件由proxy_max_temp_file_size和proxy_temp_file_write_size这两个指令决定。
proxy_temp_file_write_size 是一次访问能写入的临时文件的大小,默认是proxy_buffer_size和proxy_buffers中设置的缓冲区大小的2倍,Linux下一般是8k。
proxy_max_temp_file_size 指定当响应内容大于proxy_buffers指定的缓冲区时, 写入硬盘的临时文件的大小. 如果超过了这个值, Nginx将与Proxy服务器同步的传递内容, 而不再缓冲到硬盘. 设置为0时, 则直接关闭硬盘缓冲.

示例

proxy_buffer_size 4k;   #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k;   #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k;   #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;   #设定缓存文件夹大小,大于这个值,将从upstream服务器传
  • 1
  • 2
  • 3
  • 4
                 <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet"></div>

nginx响应超时upstream timed out (110: Connection timed out) while reading response header from upstream相关推荐

  1. Nginx报错:upstream timed out (110: Connection timed out)和client intended to send too large body【转】...

    nginx日志报错 2018/01/26 16:36:49 [error] 23327#0: *54953 upstream timed out (110: Connection timed out) ...

  2. 记一次网站故障排查过程(nginx 504状态码、 upstream timed out (110: Connection timed out)以及jbd2引起IO高

    一.问题描述 客户侧反馈无法正常访问系统,页面转圈,时好时坏,访问不稳定. 二.系统环境: 机器环境:UOS . nginx .php(对接其他服务器kingbase .钉钉.redis .KF) E ...

  3. nginx 报错 upstream timed out (110: Connection timed out)解决方案

    nginx 报错 upstream timed out (110: Connection timed out)解决方案 参考文章: (1)nginx 报错 upstream timed out (11 ...

  4. [temp]Nginx 错误502 upstream sent too big header while reading response header from upstream

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  5. Nginx 错误502 upstream sent too big header while reading response header from upstream

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  6. recv() failed (104: Connection reset by peer) while reading response header from upstream

    场景:为了得到用户在线等实时信息,在客户端做了个ajax轮训,每隔5秒请求一次: 用户量一上来,于是问题就来了,页面各种卡nginx日志文件 [root@iZt web]# tail -f /data ...

  7. 解决 ”upstream prematurely closed connection while reading response header from upstream“ 问题,运行环境为:ngi

    解决 "upstream prematurely closed connection while reading response header from upstream" 问题 ...

  8. upstream sent too big header while reading response header from upstream

    年底了事情真多,club服务器有问必答 提交页面 提交出这个问题 The page you are looking for is temporarily unavailable.Please try ...

  9. nginx 504错误日志出现 upstream timed out (110: Connection timed out) while reading response

    出现这样情况一般是程序执行时间过长,超出Nginx设置的执行时间. 优化方案参考 1.程序逻辑代码优化,减少时间消耗. 2.根据服务器硬件配置加大服务时间设置 nginx配置php执行时间: fast ...

最新文章

  1. postgresql高可用_Postgresql高可用实现方案
  2. CNCF 宣布成立应用交付领域小组,正式开启云原生应用时代
  3. 常用的时间字符串转换
  4. html for 循环模板
  5. SAP-R3被取代,苏宁采购平台的升级和架构演进之路
  6. matlab矩阵0-1归化,数据标准化归化处理.doc
  7. mongoDB 3.0以前版本 - 入门指南、示例
  8. RookeyFrame 隐藏 首次加载菜单 的伸缩动画
  9. salt把返回写入到mysql
  10. 事物的级别_实战分析:事务的隔离级别和传播属性
  11. .NET : 如何动态根据一个业务实体类型创建XSD架构文件
  12. linux 一键安装字体,在deepin中一键安装喜欢的字体,文档气质瞬间提升!
  13. java s_java中\s什么意思?
  14. SSM框架整合环境搭建
  15. 032-OpenCV模板匹配单个对象、多个对象
  16. python断言assert
  17. java openoffic linux_Linux操作系统下安装Openoffice3.2
  18. 从个人软件到企业软件
  19. shader 法线UV扭曲(类似金箔纸效果)(SurfaceShader)
  20. 将电脑多余空间分给其他盘

热门文章

  1. 求序列中第k小的数_推荐算法序列建模现状
  2. DataFram列操作_withColumn()
  3. hualinux ros 1.1:RouterOS如何入门及推荐资料
  4. 关于日常业务中常见公共字段的处理方法
  5. 详解Linux系统CentOS的安装步骤
  6. 全新 Phaser 3 游戏引擎特性一览
  7. 应广单片机PFS122
  8. 基于ambari-NameNode开启高可用(HA)
  9. Vue-Cli4.x项目通过electron打包桌面应用程序
  10. 2017勒索软件威胁形势分析报告