Apache正在端口80上侦听。
我有一个脚本在一个小的静态图像curl,并计时的响应。 它通常需要0.04秒,但10个请求中的6个需要2到20秒的时间。
如果我将端口更改为81,则所有请求都很快。
你有什么想法可以导致这样的事情?
编辑:另一个奇怪的是,“telnet 127.0.0.1 80”往往需要3-20秒。 港口81马上回答。
Apache的繁忙程度如何,您的MaxClients设置了多less? 如果您收到很多传入的请求,并且MaxClients较低,则一些请求将被延迟,直到Apache子线程最终可用于服务它。 您可以启用mod_status来获取Apache请求的实时视图以及每个孩子正在做什么。 它应该很快告诉你,如果所有的孩子都很忙。
如果这是一个特定的端口80问题,你可以检查iptables --list ,看看是否有任何端口80相关的规则可能会发挥作用。 这也可能是你的客户端和服务器(或你的客户端本身)之间的问题。 尝试在服务器上本地执行一些基准testing,看看是否有类似的性能问题。
这几乎可以肯定是一个networking问题,而不是你的Apacheconfiguration的问题。
端口80的stream量可能正在过滤或排队在您和目标系统之间的某处。 也许有一个代理或其他caching服务器在行动。 81端口的stream量自然会绕过“正常”networkingstream量的任何限制或特殊条件。
这是一个SYN洪水攻击。 检查这个方法是通过发布
ss -t -a |grep SYN-RECV
我通过启用SYN cookie解决了这个问题
你有主机名查询closures在Apache?
HostnameLookups Off
无关,但这可能可以帮助您了解基本的Apache优化