我最近更新到nginx 1.0.8,并尝试基于caching的dynamic页面(最初由Django应用程序通过proxy_pass提供服务)和静态页面的性能基准。 在这两种情况下,nginx将不会服务超过3或4个请求(即使没有并发连接),所以ab几乎立即报告:
apr_socket_recv: Connection reset by peer (54)
只有在select最多4个(或更less)请求时才能成功完成。
这是为什么? 我试图增加工作进程的数量(没有运气),但我认为nginx应该能够服务超过4个请求,而无需调整任何configurationvariables。 难道是我不小心触发了某种DOS保护机制?
我运行同样的问题与运行本地testing简单的Node.JS应用程序的ab 。 我find的解决方法是使用ab -r选项,指示Don't exit on socket receive errors 。
但是,这个错误的根本原因是您可以在框中打开套接字的数量有限。 如果您正在使用OSx,则可以参考此答案将较高的数字设置为此限制:
如何增加osx上的套接字的负载testing限制