公司很多内部服务为了负载均衡以及便于迁移,都配置了域名访问,而不是直接通过IP。
今天在测试代码时,发现一台服务器报错404 Not Found,经确认该服务之前一直通常IP访问,最近刚好迁移了服务器位置,从而导致服务不可用。
39_37:~ #ping tsysserver.wsd.com
PING tsysserver.wsd.com (75.101.146.67) 56(84) bytes of data.
--- tsysserver.wsd.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002ms
39_37:~ #
如果访问正常结果却应该是:
39_37:~ # ping tsysserver.wsd.com
PING tsysserver.wsd.com (10.129.143.246) 56(84) bytes of data.
64 bytes from 10.129.143.246: icmp_seq=2 ttl=60 time=0.163 ms
64 bytes from 10.129.143.246: icmp_seq=3 ttl=60 time=0.184 ms
--- tsysserver.wsd.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.163/0.179/0.192/0.019 ms
39_37:~ #
即这里无法解析自定义域名:
因为Linux下解析域名的顺序如下:
1、先查找 /etc/hosts 文件中的IP和域名映射关系,如果找不到转第2步。
2、通过 /etc/resolv.conf 文件配置的域名服务器按顺序查询域名对应IP。
于是,修改域名服务器配置文件如下:
39_37:~ # vim /etc/resolv.conf
nameserver 192.168.1.26
nameserver 172.27.36.190
nameserver 172.17.196.140
nameserver 119.147.9.49
nameserver 222.73.76.227
重新测试,OK,问题解决:
39_37:~ # ping tsysserver.wsd.com
PING tsysserver.wsd.com (10.129.143.246) 56(84) bytes of data.
64 bytes from 10.129.143.246: icmp_seq=1 ttl=60 time=0.243 ms
64 bytes from 10.129.143.246: icmp_seq=2 ttl=60 time=0.212 ms
--- tsysserver.wsd.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 0.212/0.227/0.243/0.021 ms