nginx -让PHP通过TCP而不是socket


nginx - putting PHP through TCP instead of sockets

我收到如下错误:

2014/07/18 15:01:24 [error] 5700#0: *1 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: serv_name.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "serv_name.pl"

我知道要解决这个问题,我必须让PHP通信通过TCP而不是套接字。只有一个web应用程序——我们当时有12个web在nginx上运行。我怎么能只对这一个指定的web应用程序做这个?

/etc/php5/fpm/pool.d目录下添加web_name.conf ?

我应该在这个文件里放些什么?


我必须添加更多的信息,因为我搞砸了一点。

上面的错误是针对SQL请求的,同时发生了502错误,这与套接字PHP流量有关-这就是为什么我写了关于将套接字更改为TCP的原因。

你不需要切换到TCP…实际上,这样做最终会导致性能损失。你所需要做的就是增加你的缓冲区大小。

fastcgi_buffers 16 8k;

您可以根据应用程序的需要增加这个值。您也可以更改缓冲区的大小,但没有理由这样做,因为它会根据系统的页面大小自动选择。

http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html fastcgi_buffers