Nginx启动失败:错误10013: An attempt was made to access a socket in a way forbidden
问题描述:
Nginx启动失败,无法访问localhost

原因分析:
1、进入nginx路径中,start nginx,发现窗口闪过。但是查找不到nginx进程。
2、进入 nginx-1.12.1\logs 路径下,打开error.log文件,发现有以下错误日志
2021/03/08 09:53:16 [emerg] 1820#11304: 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)
3、错误原因是绑定80端口错误,说明80端口被占用,nginx绑定失败。
解决方案:
1、kill掉占用80端口的程序,再次启动nginx
(1) 按键盘win+r 打开运行界面,输入cmd,确定,打开管理员界面
(2)输入 netstat -aon | findstr :80
如图 80端口被占用

(3)输入 tasklist|findstr “12824”
找到12824端口对应的服务名称

(4)在控制台关闭服务

(5)重新启动Nginx
2、如若占用80端口的服务/程序不能关闭,则更改nginx监听的端口号
在 nginx-1.12.1\conf 路径下,打开nginx.conf文件,将监听的端口80 修改为 8080,重新启动。
Windows平台下80端口被System占用解决办法:
在使用Windows的过程中,我们可能会要用到80端口。但是我们发现80端口被System进程占用。
(1)查找端口占用。
netstat -ano | findstr ":80 "
tasklist /fi “PID eq 4”
(2)80端口被System占用。
我们在运行中输入 regedit 打开注册表。
(3)找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
(4)找到项Start,将其值改为0
(5)重启系统,System进程就不会占用80端口了。
问题参考:
https://blog.youkuaiyun.com/qq_40646143/article/details/79593958
https://jingyan.baidu.com/article/08b6a591b23ebe14a8092231.html
当Nginx启动失败并显示'An attempt was made to access a socket in a way forbidden by its access permissions'错误时,通常是由于80端口被其他程序占用。解决方法包括:通过netstat和tasklist命令找出占用端口的进程并关闭,或者直接修改nginx配置文件,将监听端口改为8080。如果80端口被System占用,可修改注册表中HTTP服务的启动项为0,然后重启系统。
6253





