问题

反向代理服务后,访问报错,该报错前台请求表现为:502

日志中详细报错信息如下:

connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream

原因

系统开启了SeLinux,受到了SeLinux的限制。

解决方法

1) 关闭SeLinux

  • 临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
#setenforce 1 ##设置SELinux 成为enforcing模式
  • 永久生效
    修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,重启机器即可。

2) 如果不想关闭SeLinux

可以执行下面的命令:

setsebool -P httpd_can_network_connect 1

setsebool命令是用来修改SElinux策略内各项规则的布尔值。
以上命令代表,httpd 可以连接到网络,例如:Nginx、Redis等。
如果是需要 httpd 可以连接到数据库(如mysql),则可以设置setsebool -P httpd_can_network_connect_db 1

Q.E.D.


Think Big, Act Small