Nginx-错误:bind()到0.0.0.0:80失败.没有权限

Sag*_*gar 30 port networking localhost nginx

我正在尝试运行Nginx,但我收到以下错误:

bind()到0.0.0.0:80失败(10013:尝试以其访问权限禁止的方式访问套接字)

请提供一些帮助,说明我需要做些哪些改变才能使其正常工作?

我尝试在80以外的端口上运行,但它确实有效.但我需要它在80上运行.

注意:我在Windows 7上运行,命令提示符以管理员身份运行.

Dan*_*ber 47

如果端口已在使用中,则可以将默认端口80更改为未使用的其他端口(可能为8070).在conf \nginx.conf中:

server {
    listen       8070;
    ...
}
Run Code Online (Sandbox Code Playgroud)

启动后,您应该能够访问localhost:8070.


Vis*_*l R 11

tl;博士

netsh http add iplisten ipaddress=::
Run Code Online (Sandbox Code Playgroud)

面临类似的问题。在命令提示符下运行上述命令。
这应该会释放端口 80,并且您将能够运行 nginx。

说明:
netsh http 命令用于查询和配置 HTTP.sys 设置和参数。

add iplisten:将新 IP 地址添加到 IP 侦听列表中,不包括端口号。
“::”表示任何 IPv6 地址。

有关更多 netsh http 命令,请参阅netsh http 命令文档。

希望这可以帮助!!


rod*_*olk 6

您必须是admin或root用户才能绑定端口80。如果您不能以root用户身份运行,则可以执行的操作是您的应用程序侦听其他端口(如8080),然后将定向到80的消息重定向到8080。在Linux中,您使用iptables重定向消息。


小智 6

nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
Run Code Online (Sandbox Code Playgroud)

我遇到了类似的问题,我的 80 端口正在侦听 IIS(Windows 机器)。停止 IIS 释放了 80 端口。

问题解决了……!!


小智 5

请检查另一个代理是否正在端口 80 下运行 ---> 在我的例子中 IIS 作为反向代理运行,因此 nginx 无法启动。

停止 IIS,并启动 NGXIN 解决了​​问题