Nginx连接超时和客户端关闭连接问题


21

我的nginx服务器在AWS上运行,并且一直运行良好,直到最近,几个用户开始抱怨该网站直到他们进行了10次访问尝试才无法打开。

我从来没有能够从我这一方面来解决这个问题。我正在使用Google的dns,即8.8.8.8,当我为其中一位用户更改相同名称时,该网站运行正常。现在,这可能是原因,也可能仅仅是巧合。

我在错误日志中找到了这个-

2014/05/29 13:46:15 [info] 6940#0: *150649 client timed out (110: Connection timed out) while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150670 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150653 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150652 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80

甚至在某些地方-

2014/05/29 13:46:53 [info] 6940#0: *150665 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:53 [info] 6940#0: *150660 client xx.xxx.xxx.xx closed keepalive connection

注意-将xx.xxx.xxx.xx放置为客户IP

这是Nginx配置-

server {
    listen       80;
    server_name  somedomain.com  www.somedomain.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    root        /var/www/somedomain/current/app/webroot;
    index       index.php index.html index.htm;

    ... couple of location rules ...
}

我真的很感谢您的帮助。

谢谢


1
开发人员与服务器(而不是服务器)的连接可能是一个问题。由于您无法重现该问题,并且服务器本身正在注册客户端连接超时,因此我们需要怀疑开发人员可能在防火墙后面,并且他们存在导致此问题的内部网络问题。
2014年

您可以尝试禁用Keep-Alive,作为对此问题的测试。我不确定访问您的Web服务器的流量,但Keep-Alive可能会导致您达到nginx配置中的并发限制。这是更多信息:nginx.com/blog/http-keepalives-and-web-performance
Alfonso

1
@NitishDhar你能解决这个问题吗?我也面临着同样的问题,只是一无所知。如果您可以共享解决方案,将非常高兴。
伊桑·柯林斯

2
问题:服务器位于负载均衡器还是防火墙之后?是否涉及NAT?服务器和Internet之间是否存在任何形式的隧道?我问的原因是,这听起来像是当路径中某处有隧道并且有人阻止了所有破坏路径MTU发现的ICMP时发生的事情。
GeorgeB

另外,cat / proc / sys / net / ipv4 / tcp_mtu_probing的输出是什么
GeorgeB

Answers:


6

根据您从Nginx提供的日志来看,服务器和用户之间的连接似乎不稳定或缓慢。请尝试traceroute从服务器访问客户端IP地址或他/她的网关。另外,ping您的客户端IP地址很长一段时间就可以看到丢包率和响应时间。MTU可能是此问题的另一个来源。测试您是否可以达到MTU = 1500(Mac:)的客户ping -D -s 1472 xx.xx.xx.xx

顺便说一句:如果您的服务器或客户端位于中国,则此问题通常不是您的错。众所周知,GFW会随机丢弃边界之间的数据包,从而有意使国际连接质量变差。


fyi,GFW =中国防火墙。
Roshan

0

正如该评论所推测的那样,很可能是用户错误,并且他们正在关闭连接(无论是否有意关闭)。尝试可靠地重现该问题。排除发生在其他地方的情况,如果只是该位置,他们将需要在端进行故障排除。从其他浏览器/计算机尝试,然后测试网络可靠性。


0

这些日志条目看起来类似于当我使用OpenVAS之类的工具扫描服务器时显示的条目。这些工具连接不良,运行缓慢或运行不佳;nginx只是报告某些连接运行不佳。如果所有流量都来自同一来源,并且流量很快,并且在访问日志中没有其他合法请求要匹配,则很可能只是一种自动扫描程序。

这些扫描程序也可能使您的应用程序承受负载,这可能会使其他合法流量变慢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.