Nginx访问出错4006#4006: *1 connect() to 127.0.0.1:8080 failed

大彪 2019年12月21日 83次浏览

Nginx访问出错4006#4006: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream

学习Nginx反向代理时,nginx的配置文件经过多次核实没有问题,访问时一直报如下错误

An error occurred. Sorry, the page you are looking for is currently unavaila

在网上找了许多方法未解决

绝望时想着看下nginx的日志文件/var/log/nginx ,此时打开了新世界的大门,定位到了真正的错误所在

4006#4006: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream

## 真正错误所在
2019/12/21 20:13:06 [crit] 4006#4006: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream, client: 192.168.2.1, server: 192.168.2.109, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "192.168.2.109"

解决办法:

  1. 关闭SeLinux

    1. 临时关闭 (不用重启机器)
    setenforce 0    ##设置SELinux 成为permissive模式
    
    ##setenforce 1 设置SELinux 成为enforcing模式
    
    1. 修改配置文件(需要重启机器)
     修改/etc/selinux/config 文件
     将SELINUX=enforcing改为SELINUX=disabled重启机器即可
    
  2. 执行以下命令

setsebool -P httpd_can_network_connect 1

总结:

Linux系统中遇到错误时,定位错误找日志文件,定位到的错误才是准确的。

参考文章

宋兴柱(Sindrol)