我的网络中有一个 Web 服务器,其 IP 为192.168.249.10
。当我尝试在浏览器中使用其 IP 地址打开它时,我遇到以下结果:
网址:
https:
如上所示,我无法打开主页。但是当我修改我的etc\hosts
域名以将其分配给其 IP 地址时,我就可以打开它:
主办方:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
192.168.249.10 xyz.abc.com
我有:
请注意,我xyz.abc.com
只在地址栏中输入,然后它自动重定向到https
并添加public/home/login
。
写入https://192.168.249.10/public/home/login
仍然不起作用!
问题是:
- 为什么我需要为此分配 IP具体的主机文件中的域名?
hosts
除了本地替换(名称与 IP 地址)之外,该文件还有其他作用吗? - 他们是怎么做到的?(网络服务器所有者)
答案1
不,该
hosts
文件不会做任何额外的事情 - 它只是允许您直接在计算机上解析 DNS 查询,xyz.abc.com
而不是将其发送到适当的权威 DNS 服务器。您在浏览器中输入的名称或 IP 地址也会发送到 Web 服务器。Web 服务器的管理员可以查看此信息,并在您连接到 IP 地址而不是主机名时禁用访问。xyz.abc.com
这样,您就可以在同一个 IP 地址上运行多个网站。取决于所使用的 Web 服务器。每种服务器的配置方式都不同。通常,您可以使用逻辑甚至正则表达式来匹配请求中的 IP 地址、域名和资源,然后选择向客户端提供什么。要更改此行为,您需要具有 Web 服务器的管理权限。
答案2
Web 服务器可能设置为通过主机名识别虚拟主机。这意味着浏览器必须发送“host”http 标头。在您的例子中为“host: xyz.abc.com”。因此 Web 服务器知道要传送哪个站点。如果您使用名称进行连接,浏览器会执行此操作,但如果您不提供名称而是提供 ip,则当然无法执行此操作。