我最近了解了 DNS(域名系统或域名服务器)及其工作原理。我想知道 - 我可以使用网站的 IP 地址访问网站吗?如何访问? -谢谢你
TL;DR: 这取决于服务器的配置方式,但可能不是,我不会依赖它。
这是因为您尝试访问的网站可能位于反向代理或负载均衡器后面。负载均衡器的作用类似于铁路交换机,具体取决于您用于连接到它的主机名。
为了简单起见,假设
google.com
和 mail.google.com
在同一台服务器上,具有相同的 IP:192.168.1.1
。
如果您尝试直接连接到
http://192.168.1.1/
,网络服务器如何知道您想要哪种服务? 不会。 事实上,有些公司的业务完全基于负载平衡其他公司的服务器。
当您使用浏览器连接到主机时,例如:
https://www.google.com
,您的浏览器会在幕后发送一个特殊的 HOST=www.google.com
标头。 负载均衡器处理此标头并将请求路由到正确的服务器(可能位于完全不同的服务器、网络等上)。
Digital Ocean 有一个很棒的教程,介绍如何为 nginx 配置基本虚拟主机。 这演示了多主机配置的基础知识。
如果您不想打扰 DNS 服务器,您只需修改
hosts
文件即可在桌面上设置本地实验室环境。 您可以通过谷歌搜索您的操作系统主机文件所在的位置。
如果您有权访问 cURL,您可以像这样测试结果:
# if you've configured a virtual host for mysite01.local on port 80
curl --verbose --header 'Host: mysite01.local' 'http://127.0.0.1'
# if you've configured a virtual host for mysite02.local on port 80
curl --verbose --header 'Host: mysite02.local' 'http://127.0.0.1'
# depending on your configuration this may return a 404 or point to one of your previous sites
curl --verbose 'http://127.0.0.1'
是的,您可以使用IP地址访问任何域。域名只是网站的名称,IP 地址是页面/网站的地址。 您始终可以使用命令提示符 ping 网站:
ping www.google.com
您将获得一个 IP 地址,在本例中为
216.58.197.78
。
注意:IP 可能会随时间而变化。因此,请确保运行 ping 命令来查找最新的 IP。
现在,当您在浏览器中输入 IP 地址时,您将被重定向到 google.com。 您可以将 DNS(域名系统)视为一个提供 IP 地址(216.58.197.78)和域名(www.google.com)之间映射的表