最近做项目的时候
发现客户给的两个域名对应的是同一个IP地址
有点疑惑,难道不应该是一一对应关系的么?(错误理解)
- 在输入框输入IP应该就可以去到那个网站(错误理解)
「 如果网站已经绑定了域名访问,则不允许用IP访问 」
「 许多网站都有多个IP服务器,如果不做映射是不会自动转到网站默认页的 」
事实是:
- 一个域名也可以绑定N个IP
- 一个IP可以绑定N个域名
1.一个域名绑定N个IP
「 一个用户访问指定域名的过程中,是指向某一个具体IP,并不会同时访问多个IP 」
「 不同用户在不同地点访问同一个域名,可能会访问到不同的IP地址,但表象仍旧是这个域名 」
- 如何实现一个域名绑定N个IP:通过在dns 解析时多添加几个不同IP的A记录
(1)可以给一个域名解析到不同的IP
给域名解析到两个不同的ip
(2)不同时刻,ping一下域名,发现ping到了不同的IP
ping 一下的结果
(3)每次域名请求时DNS会根据负载均衡算法返回不同的ip地址
负载均衡之DNS解析原理图
一个IP绑定N个域名
到了开头提到的ping多个域名发现是同一个IP地址的情况了。
输入多个域名后,指向了同一个IP地址,那“机器”是怎么区别到底是哪个网站的?
对于同一个WEB服务器下,区分不同的网站一般有三种形式:主机头、端口号、ip地址。
既然是同一个ip绑定多个域名的情况,那必然是通过主机头来进行区分。
这(举个例子:
有A,B两个网站,
A站的域名是 http:// aaa.com ,
B站的域名是 http:// bbb.com ,
两个域名同时解析到192.168.1.101的地址上。
那么在配置web服务器的时候,
新建第一个网站
主机头为webA,
ip为192.168.1.101,
绑定域名为 http:// aaa.com
新建第二个网站
主机头为webB,
ip为192.168.1.101,
绑定域名为 http:// bbb.com ,
当用户访问 http:// aaa.com 时,
首先由dns解析出ip为192.168.1.101,
然后访问这台服务器http请求,
服务器根据你要访问的域名判断出是webA这个网站,就会响应对应的信息。
---------------------------------------
如果直接用ip地址请求呢?
web服务器下有一个默认网站,默认网站里放的是哪个网站,用ip请求响应的就是哪个网站的默认页面。
作者:如果
链接: https://www. zhihu.com/question/2939 0934/answer/44252886