Nginx和PHP-FPM,随机的502

2010/09/19 14:52:07 [error] 1419#0: *10220 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: [...], server: [...], request: "POST /[...] HTTP/1.1", upstream: "fastcgi://unix:/server/php-fpm.sock:", host: "[...]", referrer: "[...]" 

这是我随机收到的错误。 95%的时间我的设置完美的工作,但有一段时间,我得到了502 3-4的后续请求。

正如你所看到的,我在服务器和PHP进程之间使用了Unix套接字,也正确设置了FastCGI params(SCRIPT_FILENAME)等。

我能做些什么来加强这些服务之间的联系?

非常感谢你提前。

看看你的php5-fpm.conf,你可能达到了pm.max_children限制,这也是你的服务器可以同时处理的请求数量。

如果你有脚本可以产生进程(小心僵尸!),或者如果你有很长的执行时间请求

我经常听说PHP-FPM在Unix套接字上有问题。 尝试切换到Inet套接字。 坦率地说,这并没有帮助我在相同的情况下,但它可能会帮助你:)。

你应该已经用完了一些系统资源(例如somaxcon,maxfiles等)
检查你的

  # netstat -s 

为滴,错误和没有缓冲区

所以你可以使用sysctl(例如max_dgram_qlen)