启动运行Nginx时所发异常原因分析并予以解决

Windows 系统下,本地安装 Nginx 并启动 nginx.exe,出现报错:“ 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) ”。
1

一、SQL Server 的 Reporting Service 导致的80端口被占用

  1. 我们可以看到问题造成的原因主要是80端口被占用了,正常思路我们进入 cmd 终端查看80端口的占用情况。

    netstat -ano | findstr "80"
    

image-20210804095114428

  1. 但是我们发现 PID 为4的是 System 进程,System 进程是肯定不能结束的,继续换个思路。

    那么我们知道 HTTP 服务器的端口号正好就是80,那么就从这一点入手,多半就是 HTTP 服务导致了80端口已经被占用了。

    于是我们可以查看一下当前 HTTP 的服务状态。

    netsh http show servicestate
    

image-20210804094344346

image-20210804094256119

  1. 由此可以发现请求队列中有进程 ID 为8868的请求队列,正是这些进程占用了80端口,那么我们再去任务管理器中查找 PID 为 8868 的进程。

    image-20210804110441518

    image-20210804110623087

  2. 之后转到服务并且打开服务,在服务列表中找到与 ReportServer 相关的 SQL Server Reporting Services(MSSQLSERVER)。

image-20210802183808241

  1. 之后将该服务的启动类型改成手动启动,并且停止该服务。

image-20210802183904173

  1. 之后再去启动 nginx.exe 就能发现 Nginx 能够正常启动了。

二、IIS 导致的80端口被占用

因为我不是这个原因,所以就简写了。

  1. win + R 运行 regedit 打开注册表编辑器。

    image-20210804112659912

  2. 找到这个路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP,并找到其下面的 Start 项。

image-20210804113007371

  1. 将 Start 项的数据值改为 0。

  2. 重启电脑,System 进程就不会再占用80端口了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值