欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx错误:(13: Permission denied) while reading upstream

程序员文章站 2022-03-20 08:15:17
...

前后端分离项目(前端: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错误:(13: Permission denied) while reading upstream

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

Nginx错误:(13: Permission denied) while reading upstream

然后发现启动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服务器传

相关标签: nginx