访问nginx报错502日志:failed (13: Permission denied) while connecting to upstream
admin
2024-02-28 00:17:52

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。成功跳转项目首页。问题解决。

相关内容

热门资讯

武汉挂牌2026年第一批两宗涉... 观点网讯:1月25日 ,武汉市自然资源和城乡建设局发布2026年1号土地出让公告,以网上挂牌方式出让...
期待!北京台春晚是攒了个喜剧人... 【期待!#北京台春晚是攒了个喜剧人局吧#】#喜人脱人今年春节集体上桌# 近日, 2026年北京广播电...
圣城地产“解禁” 沙特房产股开... 格隆汇1月25日|受沙特阿拉伯正式实施新规、允许外国人拥有更广泛的当地房地产资产影响,沙特房地产开发...
比去年晚了19天,今年腊八为何... 俗话说:“小孩小孩你别馋,过了腊八就是年。”1月26日,将迎来腊八。一些细心的公众发现,相较于前些年...
民营经济重镇温州如何跻身“万亿... 温州近日公布的最新数据显示,2025年,浙江温州地区生产总值突破万亿大关,达到10213.9亿元,跻...