最近在使用Nginx转发Socket请求时出现:failed (13: Permission denied) while connecting to upstream,经网上查找解决办法后,记录一下。
原因:SeLinux的限制
解决:
- 1.关闭SeLinux
- 临时关闭(不用重启机器):
# 设置SELinux 成为permissive模式
setenforce 0
# setenforce 1 设置SELinux 成为enforcing模式
- 修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
- 2.执行下面的命令
setsebool -P httpd_can_network_connect 1
还有一个:bind() to 0.0.0.0:8001 failed (13: Permission denied)
# 查看端口
semanage port -l | grep http_port_t
# 添加端口
semanage port -a -t http_port_t -p tcp 8001