所以我的问题是,为什么我不能直接通过IP地址请求来看到index.html?
#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地址。
有时主机会试图说服您只将域名服务器设置为其基础结构以“使其更容易”,但我通常建议不要这样做,因为提供的名称服务器信誉卓著的域名注册商往往会更可靠,并在您的控制之下。
评论
请向您的主机提供商询问IPv6地址。无需使用IPv6共享地址。