我有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页面上读到的内容来看,缓冲区只会决定缓冲区何时会溢出到磁盘上。 没有任何信息表明响应可能被截断,因为缓冲区太小。
所以我的问题是,为什么在更改此设置之前,响应被截断? 看来请求不应该被截断,只是由于磁盘缓冲而慢一点。
附加信息:
首先尝试看到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后