nginx 负载存在的超时问题。

  在一个WEB项目中需要用到NGINX做反向代理的负载,项目的服务器情况如下:

121.199.64.178该服务器安装nginx作为负载接入入口

192.168.0.2 安装APACHE ,作为后端的主WEB1

192.168.0.3 安装APACHE ,作为后端的主WEB2

每台服务器的具体配置情况如下:

(1) 121.199.64.178 作为接入的入口服务器的配置如下:

#--------------------------- Load Balance --------------------------------#

upstream  www  {

server   192.168.0.2:80 weight=1;

server   192.168.0.3:80 weight=1;

ip_hash;

}

server {

listen       88;

server_name  www.fuzai.com;

location / {

proxy_pass        http://www;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

}

}

该配置是将访问www.fuzai.com 这个域名的用户流量全部通过反向代理的方式负载到后端 192.168.0.2  和 192.168.0.3 两个服务器上。

(2)192.168.0.2 和 192.168.0.3 安装的APACHE,配置是一样的,具体配置如下:

<VirtualHost *:80>

DocumentRoot /alidata/www/new

ServerName www.fuzai.com

ServerAlias www.fuzai.com

<Directory "/alidata/www/new">

Options -Indexes FollowSymLinks

AllowOverride all

Order allow,deny

Allow from all

</Directory>

ErrorLog "/alidata/log/httpd/access/fuzai-error.log"

CustomLog "/alidata/log/httpd/access/fuzai.log" common

</VirtualHost>


通过以上配置,分别启动NGINX和APACHE的服务,一切顺利,NGINX服务的入口流量分别等负荷方式平均分担后端的两个APACHE服务器。运行了几天似乎挺顺畅,就在以为就此告一段落的情况下,问题产生了,就是这个WEB项目有个导出报表的功能,该功能在月底才会用,导出的数量非常大,很多人反馈数据无法导出。我自己也测试了一下,也无法导出。

在无法定位故障原因的情况下,我在后端192.168.0.2服务器上上为这个WEB项目配置了另外一个域名,这样可以访问直接访问192.168.0.2服务器f,就跳开NGINX的反向代理,测试数据导出功能,能够正常导出,就是时间比较长大约在3分钟左右。

我又重新通过NGINX入口的方式访问该项目,在测试导出数据这个环节,进行了抓包跟踪,发现从出

发导数据的之后之后大约过了60S,系统就自动终止,并其跳转到登陆URL.通过抓包分析确定应该nginx的超时机制导致,查阅资料发现,NGINX的默认超时机制是60S,具体需要修改的超时参数如下,该参数是在NGINX 的HTTP模块中添加:

proxy_connect_timeout 600; \\跟后端服务器连接的超时时间,发起握手等候响应超时时间

proxy_read_timeout 600;\\连接成功 _等候后端服务器的响应时间_其实已经进入后端的排队中等候处理

proxy_send_timeout 600;  \\后端服务器回传时间_就是在规定时间内后端服务器必须传完所有的数据。设置代理服务器转发请求的超时时间,同样指完成两次握手后的时间,如果超过这个时间代理服务器没有数据转发到后端服务器,nginx将关闭连接。

将这三个参数的时间全部设置为600S之后,重新启动NGINX服务,测试数据的导出功能,一切正常。


时间: 2024-08-29 03:18:44

nginx 负载存在的超时问题。的相关文章

lvs、haproxy、nginx 负载均衡的比较分析

lvs.haproxy.nginx 负载均衡的比较分析 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了F5硬件设备的60%性能,其他几个10%都有点困难. 不过就因为LVS忒牛了,配置也最麻烦了,而且健康检测需要另外配置Ldirector,其他HAPROXY和NGINX自己就用,而且配置超级简单. 所以小D建议,如果网站访问量不是门户级别的用HAPROXY或者NGINX就OK了,到了门户级别在用LVS+Idirector吧 哈哈 lvs和nginx都可以

Nginx 负载均衡

原文地址:http://nginx.com/resources/admin-guide/load-balancer/ Nginx Load Balancing nginx 负载均衡 This section describes how to use NGINX and NGINX Plus as a load balancer. 本章将讨论如何使用Nginx和Nginx加做负载均衡器. In This Section 本章包括 Load balancing overview 负载均衡概览 Pro

Nginx 负载均衡-加权轮询策略剖析

本文介绍的是客户端请求在多个后端服务器之间的均衡,注意与客户端请求在多个nginx进程之间的均衡相区别(Nginx根据每个工作进程的当前压力调整它们获取监听套接口的几率,那些当前比较空闲的工作进程有更多机会获取到监听套接口,从而客户端的请求到达后也就相应地被它捕获并处理).如果Nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服务器运行,如果后端服务器有多台,如何选择一台合适的后端服务器来处理当前请求,就是本文要说的负载均衡.这两种均衡互不冲突并且能同时生效. nginx不

Nginx负载均衡(一)

一.Nginx负载均衡算法 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响. 2.weight(轮询权值) weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下.或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源. 3.ip_hash 每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题. 4.

Nginx负载均衡监测节点状态

Nginx负载均衡监测节点状态 v插件(ngx_http_upstream_check_module) upstream_check_module介绍: 该模块可以为Tengine提供主动式后端服务器健康检查的功能. 该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure--with-http_upstream_check_module upstream_check_module官方文档 http://tengine.taobao.org/

Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如http://www.XX.com的方式访问,在请求时,浏览器首先会查询DNS服务器获取对应的IP,然后通过此IP访问对应的服务.因此,一种方式是www.XX.com域名映射多个IP,但是,存在一个最简单的问题,假设某台服务器重启或者出现故障,DNS会有一定的缓存时间,故障后切换时间长,而且没有对后端服务进行心跳检查和失败重试的机制.因此,外网DNS应该用来实现用GSLB(全局负

Nginx负载均衡组件模块

Nginx负载均衡组件模块 实现Nginx负载均衡的组件主要有两个: n  ngx_http_proxy_module proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池 n  ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查 1.upstream模块 upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过proxy_pass代理方式把网站的请求发送到事先定义好的对应upstream组的名字上,

N年前Nginx负载均衡在新浪播客中的应用

2008年的新浪播客由静态服务器集群和动态服务器集群两部分组成,静态服务器集群采用Squid做前端缓存,动态服务器也称接口服务器,主要用来实现显示播放数,记录播放日志等等. 接口服务器上采用F5 BIG-IP硬件四/七层负载均衡交换机,对4台Nginx反向代理服务器进行四层负载均衡,由这四台nginx服务器判断 URL,进行分组,对后端3组web服务器进行七层负载均衡. F5 BIG-IP后端的3组web服务器,配置不一样,第一组内存密集型,技术主要是PHP+Mencache服务: 第2组为 C

nginx负载均衡篇一、nginx配置

如果不知道在Linux下如何安装nginx请参考前一篇文章. nginx负载均衡的配置较apache要简单许多,这里用nginx做负载均衡将不再描述tomcat集群的配置,如果对tomcat集群配置有不懂的地方,请参考Apache反向代理结合Tomcat集群来实现负载均衡(三).tomcat集群文章进行配置.下边进入正题,开始配置nginx负载均衡. 先来看下nginx的完全配置: #user nobody; worker_processes 1; #error_log logs/error.l