Bootstrap

记录局域网压测遇到的一个域名解析顺序问题

环境:win+虚拟机

1、项目部署

2、nginx配置

3、编写jmeter脚本

4、发送请求

以上,通过请求及项目访问都没有问题

但是将jmeter脚本放到linux上分布式执行时,出现100%错误

下面开始调查问题,为什么本地win访问成功,但是同一局域网的同台电脑上虚拟机linux访问失败呢?

先排除并发导致的问题,将线程和时间调小,调短,发现还是100%错误,查看服务,正在运行状态,说明不是压力太大,导致的100%错误

此时想单独请求查看返回结果,推荐使用postman可以做请求转换,转换为curl 请求

在linux上发送curl请求时,请求发现404错误,404是请求没有发过去

由于项目是自己配置的,没有走公网,所以,emm,好像jmeter压测机没有配置hosts,配置hosts ,重启

ping nginx ip,可以ping通,ping 域名,也可以ping通【此处有坑

ping 可以通啊,感觉curl 请求 应该没啥大问题,结果当头一棒,还是返回404,查看nginx配置,没有问题【如果有问题,本机win通过域名请求或者访问项目时就不会通过】

查看resolv.conf ,emm好像刚才ping 域名走的是公网,而非局域网,注释掉公网配置nameserver,重启网卡服务

再次ping 域名,查看返回ip是局域网ip,好现在基本可以确定是ping 域名时,访问了外网的ip

百度搜索,如何修改linux 的域名解析的先后顺序,打开/etc/nsswitch.conf 文件,在hosts行看到,是优先解析dns,然后再解析hosts文件的,所以即便配置了hosts,请求还是404

修改顺序,重启网卡,问题解决

 

 

 

 

 

 

;