EC2 Apache虚拟主机问题:未购域名改Hosts后仍无法访问
你的第二个域名无法访问,主要有两个核心原因,还有一个潜在的小问题,咱们一个个拆解:
1. Apache未启用第二个虚拟主机配置
这是最关键的问题——你的EC2服务器上,/etc/apache2/sites-available/002-ecommercejiban.shop配置文件确实存在,但**sites-enabled目录里没有对应的符号链接**。Apache只会加载sites-enabled目录下的配置文件,所以它根本不知道要处理ecommercejiban.shop这个域名的请求,哪怕你本地hosts指向了EC2的IP也没用。
解决步骤:
登录你的EC2服务器,执行以下命令:
# 启用目标虚拟主机配置 sudo a2ensite 002-ecommercejiban.shop # 重启Apache让配置生效 sudo service apache2 restart
执行完成后,Apache就会加载这个虚拟主机的配置了。
2. 未注册域名的DNS解析干扰
你提到ecommercejiban.shop是未购买的域名,这意味着这个域名可能已经被第三方注册(nslookup返回的92.242.132.24就是它当前的公共DNS解析地址)。虽然你在本地/etc/hosts里指定了EC2的IP,但像nslookup这类工具默认会直接查询公共DNS服务器,不会读取本地hosts文件,所以你看到的是非权威记录。
不过浏览器通常会优先读取hosts文件,但前提是Apache已经正确配置并启用了该虚拟主机。如果解决第一个问题后浏览器仍无法访问,你可以刷新本地DNS缓存:
# Ubuntu 14.04刷新DNS缓存的命令 sudo service dns-clean restart sudo /etc/init.d/networking restart
3. 潜在的hosts配置格式问题
检查一下你本地/etc/hosts的条目格式是否正确:
正确格式应该是:
IP地址 域名,比如52.24.182.161 ecommercejiban.shop,IP和域名之间至少有一个空格或制表符,不要有多余的符号或换行。
如果格式错误,系统也无法正确识别这条hosts记录。
内容的提问来源于stack exchange,提问作者ShanjayG

