我最近了解了DNS(域名系统或域名服务器)以及它的工作原理。我想知道-我能否使用网站的IP地址访问它,如何操作? - 谢谢
我最近了解了DNS(域名系统或域名服务器)以及它的工作原理。我想知道-我能否使用网站的IP地址访问它,如何操作? - 谢谢
简而言之:这取决于服务器的配置,但很可能不行,我不会依赖它。
这是因为您要访问的网站很可能在反向代理或负载均衡器后面。负载均衡器就像一个铁路交换机,根据您连接到它的主机名进行操作。
为了简单起见,假设google.com
和mail.google.com
在同一台具有相同IP地址的服务器上:192.168.1.1
。
如果您尝试直接连接到http://192.168.1.1/
,Web服务器如何知道您想要哪个服务?它不知道。事实上,有些公司的业务完全基于负载平衡其他公司的服务器。
当您使用浏览器连接到主机时,例如:https://www.google.com
,您的浏览器在幕后发送一个特殊的HOST=www.google.com
标头。负载均衡器处理此标头并将请求路由到正确的服务器(可能在完全不同的服务器、网络等上)。
Digital Ocean有一个很好的教程,介绍了如何配置Ubuntu上Nginx的基本虚拟主机。这演示了多主机配置可能看起来像什么。
如果您不想搞DNS服务器,可以通过修改您的hosts
文件在桌面上设置一个本地实验室环境。您可以搜索一下您操作系统的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地址时,您将被重定向到google.com。您可以将 DNS(域名系统)视为提供IP地址(216.58.197.78)和域名(www.google.com)之间映射的表格。