访问nginx报错502日志:failed (13: Permission denied) while connecting to upstream

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。访问nginx报错502日志:failed (13: Permission denied) while connecting to upstream,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1.错误问题
nginx启动成功,但是访问nginx报错502。检查后台项目,使用IP+端口可以正常访问项目的,这说明项目启动成功了。那就是nginx的问题。检查了nginx.conf文件发现配置的反向代理没有问题。最后查看了nginx日志信息,报错信息如下:

13889#13889: *54 connect() to 127.0.0.1:3500 failed (13: Permission denied) while 
connecting to upstream, client: 192.168.1.253, server: xxx.xxx.com, request: 
"GET /apis/ HTTP/1.1", upstream: "http://127.0.0.1:3500/", host: "xxx.xxx.com"

查看日志路径:
1.源码包离线安装日志查看
日志位置 /usr/local/nginx/logs
2.rpm包安装日志查看
错误日志:/var/log/nginx/error.log
访问日志:/var/log/nginx/access.log

项目部署使用的为rpm安装的,执行命令查看错误日志:

tail -f /var/log/nginx/error.log 动态查看最后输出信息
cat /var/log/nginx/error.log  查看所有内容信息
//error.log错误日志 access.log为访问日志

2.解决
首先查找该问题,是因为权限不足导致的。
以为是nginx文件夹的问题,把nginx当前目录及目录下所有文件重新授权:

chmod -R 777 nginx 

试了下没有效果。
尝试修改nginx.conf文件把第一行的user nginx改为user root。

systemctl reload nginx

重启nginx,没有效果。
最后查找发现此问题的原因是SELinux基于最小权限原则默认拦截了 Nginx 的请求,SELinux 是 Linux 的安全子系统。
解决方法,要么是直接关掉它,要么执行下方指令开启 HTTP 访问
开启 HTTP 访问:

setsebool -P httpd_can_network_connect 1

直接关掉
确认 SELinux 的运行状态

sestatus

临时关闭 SELinux:

setenforce 0

临时启动 SELinux:

setenforce 1

永久关闭/启动:

修改/etc/sysconfig/selinux文件
SELINUX=disabled 后重启系统

关掉SELinux,再次访问nginx。成功跳转项目首页。问题解决。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260296.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!