nginx启动报错nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

我以非root用户启动nginx报错,查到原因可能时如下

1
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

1.执行文件/path/nginx和/path/nginx.conf没有访问或执行权限 2.非root用户只能启动1024以上端口,要root才能使用80端口 3.selinux没有关闭

想到的解决办法 1.给指定程序设置 CAP_NET_BIND_SERVICE 能力

1
setcap cap_net_bind_service=+eip /path/to/application

2.关闭selinux,方法网上一大堆

3.给/path/nginx和/path/nginx.conf权限

1
2
chown -R nginx:nginx /path/nginx
chown -R nginx:nginx /path/nginx.conf

4.端口转发,将启动转到转发到80端口,方法很多,百度即可