nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
作者:mmseoamin日期:2023-12-21
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

这通常是由于权限问题引起的。

Nginx 默认监听端口 80,而端口号低于 1024 被视为特权端口,只有特定的用户(例如 root 用户)才有权限绑定到这些端口上。因此,当你尝试以非特权用户(例如普通用户)身份启动 Nginx 并绑定到端口 80 时,会出现权限被拒绝的错误。

解决方法:
  1. 使用特权用户:以 root 用户身份运行 Nginx,这样它将能够绑定到端口 80。但这并不是一个安全的做法,因此只有在必要时才应该这样做。

  2. 更改端口:将 Nginx 配置文件中的监听端口改为大于 1024 的其他端口,例如 8080。这样,非特权用户就可以启动 Nginx 了。

  3. 使得 Nginx 运行在 root 权限下:

    cd /usr/local/nginx/sbin/ 
    chown root nginx
    chmod u+s nginx
    或者:
    cd /usr/local/nginx/sbin/ 
    sudo chown root nginx
    sudo chmod u+s nginx