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


    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
    • 2
    • 3

    查看日志路径:
    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为访问日志
    
    • 1
    • 2
    • 3

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

    chmod -R 777 nginx 
    
    • 1

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

    systemctl reload nginx
    
    • 1

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

    setsebool -P httpd_can_network_connect 1
    
    • 1

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

    sestatus
    
    • 1

    临时关闭 SELinux:

    setenforce 0
    
    • 1

    临时启动 SELinux:

    setenforce 1
    
    • 1

    永久关闭/启动:

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

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

  • 相关阅读:
    关于一些基础数据类型大小的说明。
    进程基本概念
    Springboot健康饮食小程序的设计的实现毕业设计源码280920
    Redis趋势—NVM内存
    华硕天选2刷了3060的bios后,c口失效,不能像之前那样外界显示器
    Eureka注册中心
    家居品牌如何在小红书上推广?家居产品推广看这里
    macbook电脑磁盘满了怎么删东西?
    【直接运行TS文件的三种方法】
    java毕业生设计校园网上跳蚤书市系统计算机源码+系统+mysql+调试部署+lw
  • 原文地址:https://blog.csdn.net/m0_50176078/article/details/128097715