NginX 和 PHP-FPM,随机 502

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% 的时间我的设置都运行正常,但偶尔我会在 3-4 个后续请求中收到 502 错误。

正如您所见,我在服务器和 PHP 进程之间使用了 Unix 套接字,并且正确设置了 FastCGI 参数(SCRIPT_FILENAME)等。

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

提前非常感谢您。

答案1

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

如果你的脚本可能会产生进程(小心僵尸进程!)或者你有长时间执行的请求,那么这个限制很容易达到。

答案2

我经常听说 PHP-FPM 在 Unix 套接字方面存在问题。尝试切换到 Inet 套接字。坦率地说,在同样的情况下,它对我没什么帮助,但它可能会对你有所帮助 :)。

答案3

你应该耗尽了一些系统资源(例如 somaxcon、maxfiles 等)
检查你的

 # netstat -s

丢失、错误和无缓冲

因此你可以使用 sysctl (例如 max_dgram_qlen)

相关内容