Windows 文本格式BOM头问题引起Nginx无法启动

346 阅读1分钟

         nginx运行在Windows环境中

        前提背景: 文本格式带有BOM头的问题发生在Windows中,对nginx配置文件做了保存操作,之后重启nginx报错,启动不了,发现了此问题。

        报错信息:使用nginx -t 控制台检查出的问题信息

nginx: [emerg] unknown directive "锘縲orker_processes" in D:\Demo\nginx/conf/nginx.conf:1
nginx: configuration file D:\Demo\nginx/conf/nginx.conf test failed

 nginx报错日志:

unknown directive "worker_processes" in D:\Demo\nginx/conf/nginx.conf:1

        报错信息是在命令窗口打印所得,报错日志是文本打开显示;两者比较差异,发现是在配置文件开头发生乱码现象。 这个配置文件前提是能正常运行的,从可运行的环境复制到现环境中。

        出现这个问题的原因是,使用Windows将原本UTF-8格式的nginx的配置文件转换成为UTF-8 BOM格式。nginx读取配置文件,没有做去除BOM头操作,直接读取导致报错

        将文本转换为十六进制格式打开文本,可以直观发现最前面多了三个字符,EF BB BF

​编辑

         解决的办法就是将这个nginx.conf配置文件转码为UTF-8格式就行。

        我使用的是Notepad++做的转码操作