Nginx的conf文件出现Unicode特殊字符
Nginx的conf文件出现Unicode特殊字符
脑壳疼整整两天
问题描述
在同一个配置文件下相同的配置,不同端口的两个server,两个端口所代理的服务却形成了互补
例如:原有8888端口ABCD是个代理,ABD正常可以访问到,C代理不到,现将8888复制一份成为8008端口,两个端口中同有ABCD四个代理,重启后8008ABC正常可以访问到D访问不到。 nginx.conf文件如下
worker_processes 16; events { worker_connections 1024; } http { include mime.types; sendfile on; keepalive_timeout 100; server { listen 6666; server_name localhost:6666; location /A { proxy_pass http://localhost:7001/a; } location /B { proxy_pass http://localhost:7002/b; } location /C { proxy_pass http://localhost:7003/c; } location /D{ proxy_pass http://localhost:7004/d; } } server { listen 8008; server_name localhost:8008; location /A { proxy_pass http://localhost:7001/a; } location /B { proxy_pass http://localhost:7002/b; } location /C { proxy_pass http://localhost:7003/c; } location /D{ proxy_pass http://localhost:7004/d; } } }
原因分析思路:
1.后台没有任何路径访问日志 2.location路径、proxy路径全部改过(去除前缀和不去除前缀),之后排除掉 3.增加、删除之后也排除掉 4.是不是转后路径多层还是少了,多层的话后台是会产生日志的,少了的话nginx应该是502排除掉
解决方案:
直到今天早上才找到问题原因,conf文件中出现<200b>这种东西,因为我是在windows下编辑直接上传到服务器,之前也没碰到过,直到今天早上vim nginx.conf之后才找到这个问题的,删除之后正常了。
这个<200b>是Unicode编码 Unicode名称 Zero Width Space 符号含义为:零宽间隔,常用标点