为什么响应在16k用php + fastcgi截断?

我有PHP 5.3.3和nginx 0.8.47从运行Wordpress博客的源代码编译。 WordPress生成的RSS feed在16k左右被截断(包括头部为16k + 90b)。 通过添加以下内容到我的nginxconfiguration:

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; 

问题就消失了。但是,从我在Nginx wiki页面上读到的内容来看,缓冲区只会决定缓冲区何时会溢出到磁盘上。 没有任何信息表明响应可能被截断,因为缓冲区太小。

所以我的问题是,为什么在更改此设置之前,响应被截断? 看来请求不应该被截断,只是由于磁盘缓冲而慢一点。

附加信息:

  • Ubuntu 10.04.2 32位
  • PAGESIZE 4k

首先尝试看到error_log(在级别信息,如果在信息级别打印没有任何相关,尝试读取debugging日志)。

被接受的答案是无用的,所以我去了关于检查写权限的评论,这对我来说是个窍门。 我以不同的用户身份运行Nginx,因此必须在默认的临时path上更改权限。 对于RHEL安装,这是/var/lib/nginx/tmp/fastcgi ,它具有700的默认权限:

 chown -R webuser /var/lib/nginx/tmp 

我在Scientific Linux 7上遇到了这个问题,使用SL回购软件包。 在Scientific Linux 6上,使用Nginx提供的软件包(在/var/cache/nginx上有755个权限),这一步对我来说不是必需的

将此文本复制到nginx的conf文件中

 http { ..... fastcgi_buffers 256 4k; ..... } 

重启nginx后