我在公司内部(防火墙)网络的一台新 Solaris 机器上设置了 Apache2,并将其配置为基于名称的虚拟主机。
我们还没有为新机器创建域名,因此我创建了自己的域名“lsiden.net”,并在 httpd.conf <VirtualHost> 指令中将主机命名为“myhost.lsiden.net”。
由于没有注册这样的域名,我在 /etc/hosts 文件中创建了条目“wxyz myhost.lsiden.net”。 (当我们获得真正的域名时,我会将其删除。)
我可以 ping myhost.lsiden.net,但如果我在 IE7 或 Google Chrome 10 中输入它,它就不会解析。是否有东西阻止每个浏览器查看 /etc/hosts 文件?
(为了访问我公司的 VPN,我必须使用他们为我配置的装有 Windows XP 的机器。因此 /etc/hosts 实际上是类似于 c:\Windows\system32\drivers\etc\hosts 的东西,但这并不重要。)
答案1
至于“为什么一个能工作而另一个不能”,要记住的一件事是 ping 使用的协议 (icmp) 与 http (tcp) 不同。你能检查 Windows 主机上的防火墙吗?许多 VPN 都配置为防火墙某些东西。
ping 之后的下一步是旧的网站管理员(我使用这个术语来表明自己已经过时了)工具:telnet。
你能试一下吗:
telnet <machine> <port>
从您的 Windows 框中。
如果连接不上,则表示连接有问题。可能是防火墙或其他原因。
如果确实连接,请尝试输入:
GET / HTTP/1.0
Host: <nameOfVirtualHost>
ReturnReturn
然后它就会显示您的页面。
如果您还没有,我会刷新系统 DNS 缓存:
ipconfig /flushdns
浏览器本身可能会使用 DNS 缓存。我知道 Chrome 会这样做,但找不到清除它的方法。Firefox 有一个刷新 DNS 缓存的插件