Nginx-当客户端大量持续请求Nginx下的FastCGI程序时,经常出现网关超时,该如何处理?

发布于 2016-12-26 03:14:23 字数 845 浏览 1178 评论 1

我用的是Nginx-1.0.13,配置FastCGI连接及读写超时为30秒。我的FastCGI程序按照官网的例子编写,C代码实现,同时启用300线程。客户端程序为300个进程,每个进程每隔1秒发起一次请求,如果FastCGI收到请求,会立即回应(通信的数据不超过5K)。遇到的问题是,当客户端持续发送请求时,Nginx中会出现大量的upstream timed out (110: Connection timed out) 。按照网上给出的解决方案,修改Nginx配置后问题照旧。

我的FastCGI源代码与官网示例代码结构基本一致:http://www.fastcgi.com/devkit/examples/threaded.c。使用的客户端程序和FastCGI程序在同一台机器上,64位RHEL5.5虚拟机,8G内存,4核CPU。望高手指点一下~

Nginx核心配置如下:
worker_processes 4;
events {
worker_connections 10240;
}
location ~ .cgi$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.cgi;
include fastcgi_params;
fastcgi_connect_timeout 30;
fastcgi_send_timeout 30;
fastcgi_read_timeout 30;
fastcgi_buffers 1000 500k;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清晨说ぺ晚安 2017-03-03 10:54:03

自问自答一下。经过将代码和Nginx模块分离,单独测试后,发现出现网关超时的最主要原因是Nginx写日志量较大,每50000条访问记录,日志大概400MB。经过调整策略,只记录关键信息后,客户端和服务器并发数为500时,仍未出现网关超时错误~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文