利用nginx进行反向代理的时候,配置proxy_pass时可能使用域名,这时候在启动或停止nginx的时候,有时候会报nginx: [emerg] host not found in upstream "www.cj22.cn" in /usr/local/nginx/conf/vhost/www.cj22.cn.conf:40 这类错误。
然而nginx配置语法上并没有错误,只是服务器无法解析这个域名,所以报错(这时候你ping一下这个域名,你会发现ping不通,或者很久才响应,Nslookup 也可以发现解析很慢甚至不解析)。
解决办法两个:
第一:修改服务器的dns,改成8.8.8.8 114.114.114.114一类的一般就可以解决;
第二:修改hosts文件,添加dns到/etc/resolv.conf 或者是/etc/hosts,让其能够解析到IP。
具体步骤如下:
vi /etc/hosts
修改hosts文件,在hosts文件里面加上一句 (ip 域名[1.2.3.4 www.cj22.cn]),强制绑定hosts即可。