(ubuntu)nginx:[emerg] bind()到0.0.0.0:80失败(13:权限被拒绝)

use*_*858 21 permissions bind nginx denied

我需要帮助找出此权限被拒绝错误的根本原因.nginx需要什么权限?为什么这么复杂?

vvy*_*vvy 21

套接字API bind()到一个小于1024的端口,如你提到的标题为80,需要root访问权限.

这里是" 绑定到没有root访问权限的1024以下的端口 "

另一种更简单的方法是以root身份运行nginx.


Bel*_*ter 9

如果您使用大于1024的端口和root权限,那么仍然会遇到此问题,这可能是由SELinux以下原因造成的:

在segange端口检查此端口,例如8024

sudo semanage port -l | grep http_port_t
Run Code Online (Sandbox Code Playgroud)

如果端口列表没有8024,则将其添加到segange端口

sudo semanage port -a -t http_port_t  -p tcp 8024
Run Code Online (Sandbox Code Playgroud)

2017.12.22更新

有时你的SELinux disabled,你enforcing首先需要它.检查SELinux的状态

$ sestatus

更多步骤可以阅读这篇精彩的文章:https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts