文章首发于 我的博客-linux下web开发中遇到的404问题
问题:
web开发,请求的接口为http://www.xxxx.com/zzzz
一请求报404错误
说明:
提供的接口没有问题
操作系统:linux
查找原因:
先ping域名,发现ping不通
猜想是不是没有配置外网
ping baidu.com
发现依然是ping不通
直接ping 任意生效ip,发现可以ping通,说明网络连接正常
说明可能是域名解析出了问题
查了域名解析的顺序(都还给学校了orz),发现域名解析的顺序是先从本机hosts文件查找,如果查找不到,通过配置的dns服务器查找
ping 命令是先查找host文件,再通过配置的dns服务器查找
linux下如果想看配置的dns服务器是否能查找到某个域名,可以用
host 域名
linux下
host文件位置 /etc/host
dns服务器配置位置 /etc/resolv.conf
tip:
windows下host文件位置 C:\Windows\System32\host
host命令不能查找到域名,说明dns服务器的配置也有问题
解决方案:
法一:
可以修改/etc/host文件,添加ip和对应域名
eg:
127.0.0.1 www.xxx.com
法二:
修改 /etc/resolv.conf,修改或添加dns服务器
注意:
一般是在web开发中会去通过修改host文件来配置临时ip对应域名(局域网下可能不会配置dns服务器)
在web开发中使用域名的好处是可以不必去关心真正的ip是什么,即使ip变动也不影响
如果直接通过ip请求请求不到的原因可能是因为服务器限制了直接ip请求
参考链接:
https://www.cnblogs.com/laipDIDI/articles/2213787.html