今天,我买了一个共享主机包。然后,我通过FTP向其中添加了index.html。当我在Chrome中输入给定的IP地址时,总是看到Plesk的默认页面,而不是index.html。但是后来我编辑了Windows的主机文件,并在IP旁边输入了一个域名。当我在Chrome中输入该域名时,可​​以正确看到index.html文件。

所以我的问题是,为什么我不能直接通过IP地址请求来看到index.html?

评论

请向您的主机提供商询问IPv6地址。无需使用IPv6共享地址。

#1 楼

我想我找到了答案。

事情是这样的,因为我购买了共享托管包,所以它们也给了我共享IP。我的猜测是,此IP在我的旁边有很多网站,并且都可以使用相同的共享IP地址进行访问。

诀窍是HTTP GET请求的Host标头!

直接在地址栏中输入共享IP时,主机标头与共享IP地址相同。因此,主机不知道显示哪个共享网站作为响应。

当我编辑Windows的Hosts文件然后检查HTTP GET请求时,我看到Host标头设置为我的域名称,即使我请求了相同的共享IP!因此,这次主机知道此请求属于哪个网站!

评论


这是完全正确的。很高兴您能够自己解决问题并在此处发布答案。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
20年1月25日在18:07

干得好,自我解答。欢迎使用StackExchange!

–哈珀-恢复莫妮卡
20 Jan 26'在7:03

我想补充一点,这种托管形式是100%正常的。实际上,我始终将站点配置为仅在正确的主机名上提供内容,即使该站点仅位于该IP上也是如此。

– marcelm
20 Jan 26 '13:17

Plesk和其他面板/主机将具有预览URL,例如http://10.10.10.1:8443/sitepreview/http/www.example.com/和过去的http://10.10.10.1/~www.example.com或类似的东西。

– AbraCadaver
20年1月27日在19:02

您可能希望将该条目从主机文件中删除,以避免将来出现问题。您最终可能会在主机文件中使用“手动”条目来拔头发,该条目在IP更改后拒绝正确解析,等等。

– Greg Nickoloff
20年1月28日在17:56

#2 楼

是的,除非您特别要求一个地址,否则最近几天获得专用的网站IP地址是非常不寻常的,通常是需要付费的。

通常,hosts节点apache / nginx服务器将运行默认配置页在节点的公共IP地址上,并为它们需要运行的每个网站创建“虚拟主机”(通常由cpanel之类的工具管理)。

Web服务器对收到的请求做出适当的响应,因此如果请求是jazzhands.com,它将检查它是否托管该站点,然后将其提供服务。

您需要在DNS区域中创建一个A记录,并将其指向该站点的公共IP地址。

有时主机会试图说服您只将域名服务器设置为其基础结构以“使其更容易”,但我通常建议不要这样做,因为提供的名称服务器信誉卓著的域名注册商往往会更可靠,并在您的控制之下。