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++做的转码操作