在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