赞
踩
今天测nginx做反向代理,发现报错:
connect() to xxx.xxx.xx.x:xxxx failed (13: Permission denied) while
connecting to upstream
一开始以为是nginx运行用户权限的原因,修改为root之后也没用,发现这是请求后台地址报的权限不足。找了一圈发现是selinux的原因,于是尝试把selinux关了:
setenforce 0
selinux由enforcing状态变成permissive。惊喜发现可以了,后来想了一下,关闭也不安全,于是又找了一下,可以把httpd连接网络打开:
setsebool -P httpd_can_network_connect 1
#httpd可以连接到网络(如连接redis就必须设置)
事先用getsebool httpd_can_network_connect查看是关闭状态,此时nginx还是报权限不足,打开后就可以了!
后来我尝试绑定其他端口,如8888,结果报bind xxx.xxx.xxx.xxx:8888失败,也是Permission denied的报错,这次是直接启动不了了。然后关闭setlinux就可以了,原因是selinux限制了一些非常用端口的访问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。