Nginx: [emerg] bind() to 0.0.0.0:xxxx failed (13: Permission denied)

在CentOS7环境中安装了nginx后,启动的时候报错nginx: [emerg] bind() to 0.0.0.0:6080 failed (13: Permission denied)。从字面意思上来说,这是权限不足。但出现这种错误可能有多种原因导致的。

1. 端口小于1024时

当端口小于1024时,且运行的账号不是root就会报这个错误。
解决办法是修改nginx的配置文件,以user root;启动

2. 端口大于1024时

检查一下selinux是否开启了。如果开启了关闭selinux试试

setenforce 0

如果关了selinux能正常说明端口可能与selinux的端口冲突了或http_port_t中没有开放对应的端口

[root@ptr ~]# semanage port -l | grep 6080
geneve_port_t                  tcp      6080

发现6080是geneve_port_t 的端口,要么修改自己的端口,要么修改geneve_port_t 的端口,然后再把6080添加到http_port_t。附senamage 端口操作命令

senamage 端口 删除 类型 [] 协议 TCP/UDP 端口
semanage port -d -t geneve_port_t  -p tcp 6081

senamage 端口 增加 类型 [] 协议 TCP/UDP 端口
semanage port -a -t http_port_t -p tcp 6080

senamage 端口 修改 类型 [] 协议 TCP/UDP 端口
semanage port -m -t geneve_port_t  -p tcp 6081
0%