关于打开nginx失败背后的故事

本文总结了Nginx启动失败的两个常见问题及其解决方法。一是配置文件因错误编码格式引发的未知指令错误;二是80端口被system或sqlserver的report服务占用的问题。通过调整文件编码和修改注册表或服务设置,最终成功启动Nginx。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天打开nginx,发现打开了在任务管理器找不到,也就是打开失败了,于是上网查找了一堆解决方法,现在对于遇到的问题做个总结。首先,打开了nginx.exe同目录下的logs文件里面的error.txt文件,发现了如下几个问题。
1.unknown directive “” in (路径)nginx-1.15.6\nginx-1.15.6/conf/nginx.conf:3
原因:conf文件被记事本编辑过,保存成了’UTF-8+BOM’格式。
在这里插入图片描述
解决:使用editplus等其它非记事本另存为 UTF-8 不含BOM 的文件就可以了。

本以为这样就可以了,没想到另一个更难缠的问题出现了!
2.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)
即nginx listen的80端口被占用。
解决1:system占用
运行–cmd
C:>netstat -aon|findstr “80”
我的80端口显示是被system占用,pid为4.
点开开始菜单,在搜索程序和文件处,输入regedit,打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP’右边有一个’start’的DWORD的值将‘3’改为‘0’重启即可。
但是重启不行只能又查到第二种方法。
解决2:sqlserver的report占用,在开始菜单找到Reporting services的配置管理器
在这里插入图片描述
点击打开,如下图所示,会看到此服务的tcp端口为80
在这里插入图片描述
在控制面板中,找到管理工具,找到服务,找到SqlServer reporting services,将其停止,并改为手工,如下图所示
在这里插入图片描述
终于,80端口不被占用了,也成功打开nginx了!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值