环境 :windows server 2019 ,nginx-1.19.7
背景:
- 自己经常用这个 nginx 包作为 web 服务器。今天发现 部署到 server 2019 上直接报错了。
- 这可是原生的包,我啥也没改,怎么可能报错。而且之前在 其他服务器用都没问题。
- 特意检查了路径不能是带中文等特殊字符,发现也ok。
这就奇怪了?
分析:查看logs 目录下 error.log ,将最后的报错贴上来,以警后人:
nginx启动报错:unknown directive “ “ in D:\common\nginx\conf\nginx.conf:3
网上查了下,感谢这个博主:
nginx启动报错:unknown directive “ “ in D:\nginx\conf\nginx.conf:3_unknown directive "user nginx-CSDN博客文章浏览阅读936次。在尝试使用Nginx部署前端项目时,由于使用记事本以UTF-8带BOM格式保存了nginx.conf配置文件,导致启动时出现unknowndirective错误。解决方案是使用不带BOM的UTF-8编码编辑器重新保存conf文件。完成修改后,Nginx成功启动。https://blog.csdn.net/shunhua19881987/article/details/125255452
我将具体原因和解决方法贴上来:
用Nginx部署一个前端项目,用记事本修改了nginx\conf\nginx.conf 文件的相关配置并保存,居然启动时报错:unknown directive " " in D:\nginx\conf\nginx.conf:1
原因:
是编码问题。 conf文件被记事本编辑过,保存成了含BOM编码的文件。
注:记事本编辑UTF-8都会自动加BOM头
解决方法:
使用其他编辑器(不能是记事本)将conf文件另存为UTF-8编码不含Bom的格式。
修改完成后,Nginx成功启动。