前后端分离项目(前端:vue)

问题描述:多次点击文件下载,存在下载成功,也存在报错(网络异常)

报错:
2018/09/03 11:16:28 [crit] 19371#0: *16862965 open()"/data/server/nginx/proxy_temp/2/26/0000000262" failed (13: Permission denied) whilereading upstream, client: IP(*.*.*.*), server: admin........, request: "POST/apis/excel/export HTTP/1.1", upstream: "http://IP(*.*.*.*):8080//excel/export", host: "admin", referrer: "http://admin.cn/"

当代理文件大小超过配置的proxy_temp_file_write_size值时,nginx会将文件写入到临时目录下(默认为/proxy_temp)。

当查看nginx的worker权限的时候,发现是www权限,所以要看生成落地文件的文件夹权限是不是www权限。

然后发现启动nginx的权限是www,转发的节点有些proxy_temp文件夹是root权限,所以无法写入,导致报错。

解决

调整/proxy_temp权限为配置nginx的那个用户。

chown -R www:www /data/server/nginx/proxy_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服务器传

Logo

前往低代码交流专区

更多推荐