jea*_*ean 35 domain-name-system ip hostname
谁能解释两个主机名是否可以共享相同的 IP 地址?
如果一个主机名代表多个 IP 地址,那也可能吗?为什么?
Mat*_*sen 45
也可以将多个 IP 地址分配给一个主机名:
rr.example.com. A 192.0.2.12
rr.example.com. A 192.0.2.23
rr.example.com. A 192.0.2.34
rr.example.com. A 192.0.2.45
Run Code Online (Sandbox Code Playgroud)
当您查询 DNS 服务器时,rr.example.com您会得到一个 IP 地址列表。然后您可以选择连接到其中之一。如果第一次尝试连接被主动拒绝,请尝试下一次。
大多数浏览器都会遵循这个流程,只要端点主动拒绝 TCP 连接。如果端点超时,即使并非所有 IP 都已尝试,资源也将被视为无法访问
由于大多数应用程序(包括浏览器)通常一次只对 1 个 IP 端点感兴趣,并且只选择第一个可用的答案,因此您可能会在目标服务器之间造成负载偏差,以便第一个服务器获得所有流量,而其他服务器可能空闲.
为了避免这种情况,大多数 DNS 服务器提供所谓的循环配置,使服务器交替返回相同匹配记录的顺序。在负载均衡器普及之前,这是一种有效的负载均衡方式,并在一定程度上实现了网络系统的容错。
Sir*_*rch 35
是的,有可能多个主机名使用同一个ip地址,最好的做法是使用CNAME记录指向A记录
bar.example.com. CNAME foo.example.com.
foo.example.com. A 192.0.2.23
Run Code Online (Sandbox Code Playgroud)
记下所有的句号。
用一个主机名来表示多个 IP 地址有点复杂。如果说MX记录,这个方案在DNS中已经存在使用优先级编号,如果你想让它代表多条A记录,你最好使用负载均衡器,例如HAProxy。
小智 6
除了按照其他答案的建议更改 CNAME 之外,您还必须处理托管服务器上的逻辑。我使用 Apache 并将其配置为:
<VirtualHost 1.2.3.4:80>
ServerName www.abc.com
ServerAlias abc.com
...
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName www.xyz.com
ServerAlias xyz.com
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我相信其他 http 服务器软件也有类似的东西。