ubuntu Nginx错误:(13:Permission denied)while阅读upstream on /var/cache/nginx/proxy_temp/

ffscu2ro  于 11个月前  发布在  Nginx
关注(0)|答案(3)|浏览(196)

当我使用这个sudo tail -n 20 /var/log/nginx/error.log阅读日志时,我遇到了这个错误;
我的网站正在加载,但一切都是黑色的,当我看着控制台日志,我看到这个Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH
来自预览日志的完整错误如下所示
2019/09/30 16:24:09 [crit] 9103#9103: *81 mkdir() "/var/cache/nginx/proxy_temp/5" failed (2: No such file or directory) while reading upstream, client: MY_IP, server: dev.example.com, request: "GET /bundle.js HTTP/1.1", upstream: "http://127.0.0.1:5000/bundle.js", host: "dev.example.com", referrer: "https://dev.example.com/"
我已尝试给予权限缓存文件夹,但仍然无法工作

qnzebej0

qnzebej01#

它说它在尝试创建文件夹“/var/cache/nginx/proxy_temp/5”时失败。
检查nginx正在使用的用户和chown -R user:user /var/cache/nginx
还有chmod -R +x /var/cache/nginx,只是为了确保文件夹上有足够的权限。
:)

kxxlusnw

kxxlusnw2#

我的场景是在ASP.NET CORE 6.0中使用API,我收到502错误,但是,当执行下面的命令时,工作成功
在Linux上,运行以下命令以检查日志

# sudo cat /var/log/audit/audit.log | grep nginx | grep denied

字符串
如果您使用的是NGINX,请检查您是否反复遇到拒绝avc:denied { name_connect } for pid= XX拒绝=“nginx”dest=5000
如果是,请运行以下命令

# sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

# sudo semodule -i mynginx.pp


尝试再次访问。

zzlelutf

zzlelutf3#

对于那些可能有更有创意的nginx配置的人来说,如果你在启动服务器后更改了nginx用户,nginx将使用默认的用户权限创建代理文件夹和文件:www-data
在我的例子中,我已经改变了我的nginx.conf

user www; # <--- I used www, not www-data
worker_processes 8;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

字符串
在重新启动时,我从反向代理得到了一堆错误,这些错误引用了可能是在用户为www-data时缓存的缓存文件
和我之前的那些人一样:

2023/12/18 18:10:18 [crit] 4104599#4104599: *1752 open() "/var/lib/nginx/proxy/6/19/0000000196" failed (13: Permission denied) while reading upstream, client: 17x.7x.5x.1xx, server: grafana.example.cxm, request: "GET /public/build/147.73fef960675c84aa9a84.js HTTP/1.1", upstream: "http://[::1]:13000/public/build/147.73fef960675c84aa9a84.js", host: "grafana.example.cxm"


您的nginx版本可能会将代理放置在/var/lib/nginx/*中,而不是/var/cache/nginx/*
ls -l /var/lib/nginx/proxy/应显示user:group

drwx------ 25 www-data www-data 4096 Dec 12 17:25 0
drwx------ 26 www-data www-data 4096 Dec 12 17:25 1
drwx------ 26 www-data www-data 4096 Dec 12 17:25 2
drwx------ 25 www-data www-data 4096 Dec  7 22:36 3
...


ps aux | grep "nginx: worker process"应该显示nginx用户

root       12608  0.0  0.0   6612  2260 pts/2    R+   18:24   0:00 grep nginx: worker process
www      4104599  0.0  0.0  56292  6596 ?        S    10:57   0:00 nginx: worker process
www      4104600  0.0  0.0  56292  6660 ?        S    10:57   0:00 nginx: worker process
www      4104601  0.0  0.0  56292  5700 ?        S    10:57   0:00 nginx: worker process
....


如上所述:sudo chown -R www:www /var/lib/nginx/proxy/*和您的问题将得到解决。
请注意,您需要chown的文件将取决于您的nginx版本存储代理文件和文件夹的位置(或者您可能将其存储到的位置)。
干杯!干杯!

相关问题