我正在尝试运行Nginx,但是遇到了下面的错误:
bind() to 0.0.0.0:80 failed (10013: 尝试访问被其访问权限禁止的套接字)
请提供一些帮助,告诉我需要进行哪些更改才能使其正常工作?
我已经尝试在除80端口之外的其他端口上运行它,那么可以正常工作。但是我需要它在80端口上运行。
注意:我正在Windows 7上运行,以管理员身份运行命令提示符。
我正在尝试运行Nginx,但是遇到了下面的错误:
bind() to 0.0.0.0:80 failed (10013: 尝试访问被其访问权限禁止的套接字)
请提供一些帮助,告诉我需要进行哪些更改才能使其正常工作?
我已经尝试在除80端口之外的其他端口上运行它,那么可以正常工作。但是我需要它在80端口上运行。
注意:我正在Windows 7上运行,以管理员身份运行命令提示符。
server {
listen 8070;
...
}
启动后,您应该能够访问 localhost:8070。
简而言之
netsh http add iplisten ipaddress=::
遇到类似问题,请在命令提示符中运行以上命令。
这将释放端口80,然后您就可以运行nginx了。
说明:
netsh http命令用于查询和配置HTTP.sys设置和参数。
add iplisten:
向IP监听列表中添加新的IP地址,排除端口号。
"::" 表示任何IPv6地址。
有关更多的netsh http命令,请参考netsh http命令文档。
希望这能有所帮助!
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端口就被释放了。
问题得到解决...!!
要绑定端口80,您必须是管理员或root。如果您无法以root身份运行,则可以将应用程序侦听其他端口(如8080),然后将指向80的消息重定向到8080。如果您使用Linux,则可以使用iptables重定向消息。
我的Tomcat服务器运行在80端口。在conf\nginx.conf文件中更改了端口号,然后它开始工作。
这是一个老问题,但由于我最近遇到了这个问题,所以我想发表另一个可能导致此问题的原因。
如果用户正在使用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"]