nginx php文件下载损坏日志文件提示fastcgi_temp failed Permission denied

时间:2017年9月22日 14:28 发布人:portal 查看次数:19

最近在开发一个项目,其中有一个以栏目需要下载pdf文件,服务器采用了nginx+php+mysql,但是点击下载后文件提示损坏,无法打开。

首先开始怀疑技术问题,让技术调程序调到怀疑人生,后来又怀疑防火墙问题。最后在nginx的日志中发现

[crit] 6019#0: *425 open() "/usr/local/nginx/fastcgi_temp/9/00/0000000009" failed (13: Permission denied) while reading upstream...

果断执行

chown -R www:www fastcgi_temp/*

问题解决了


以下是问题的原理

nginx 反向代理参数说明

proxy_connect_timeout 600; 

#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 600; 

#连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout 600; 

#后端服务器数据回传时间(代理发送超时)
proxy_buffer_size 32k; 

#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; 

#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; 

#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; 

#设定缓存文件夹大小,大于这个值,将从upstream服务器传

问题就出在proxy_temp_file_write_size上,当你的文件超过该参数设置的大小时,nginx会先将文件写入临时目录(缺省为nginx安装目下/fastcgi_temp目录),

如果nginx对fastcgi_temp没有权限就会写不进去,结果就是只显示部分页面。

免费电话咨询

×

手机号提交成功!

请耐心等待,稍后工作人员将会与您通话

知道啦