Nginx-错误:bind() 到 0.0.0.0:80 失败。权限被拒绝

问题描述 投票:0回答:9

我正在尝试运行 Nginx,但出现以下错误:

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

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

我尝试在 80 以外的端口上运行,它可以工作。但我需要它在 80 上运行。

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

networking nginx localhost port
9个回答
82
投票

如果端口已被使用,您可以将默认端口 80 更改为未使用的其他端口(可能是 8070)。在 conf 中 ginx.conf:

server {
    listen       8070;
    ...
}

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


28
投票

tl;博士

netsh http add iplisten ipaddress=::

面临类似的问题。在命令提示符下运行上述命令。
这应该会释放端口 80,然后您就可以运行 nginx。

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

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

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

希望这有帮助!!


9
投票
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)

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

问题解决了...!!


7
投票

您必须是管理员或 root 才能绑定端口 80。如果您无法以 root 身份运行,您可以做的就是您的应用程序侦听其他端口,例如 8080,然后将消息重定向到 80 到 8080。使用 Linux,您可以使用 iptables 重定向消息。


5
投票

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

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


4
投票

我的Tomcat服务器运行在端口80上。更改了conf中的端口号 ginx.conf 文件就开始工作了。


2
投票

这是一个老问题,但由于我最近遇到了这个问题,我想在这个问题中发布另一个可能的原因。

如果用户正在使用 Docker 并且已经尝试了上述所有建议的解决方案,并且想知道为什么端口 80 正在尝试绑定,尽管在您的配置中您正在将端口覆盖为非根端口,例如

listen 8080;
似乎较新的 NGINX 镜像在
/etc/nginx/conf.d
中有一个默认的 nginx.conf 文件。

样品:

$ grep -r 80 /etc/nginx/
/etc/nginx/conf.d/default.conf:    listen       80;

就我而言,我将其从 Dockerfile 中删除了:

RUN set -x \
        && rm -f /etc/nginx/nginx.conf \
        && rm -f /etc/nginx/conf.d/default.conf

我的自定义配置的下一步:

COPY ["conf/nginx.conf", "/etc/nginx/nginx.conf"]

1
投票

对于未来的 Google 员工:

我的问题是使用 nginx 和 ssl 时端口 443。我发现 xampp 通过系统服务自动运行 apache、mysql 和 filezilla。卸载xampp后问题解决


0
投票

将端口更改为 99(c:.... ginx-1.25。

© www.soinside.com 2019 - 2024. All rights reserved.