我正在运行 Ubuntu 10.04,其中有 apache、rails、mysql 等。
我的 rails 网站在 www.example.com 上运行。我打算使用基于命名的虚拟主机,并且我为 www.example.com 配置/启用了一个虚拟主机文件。我的网站托管在 Amazon EC2 上。
问题是,如果我设置了一个新的 DNS 记录(例如 test.example.com)并浏览到该记录,我的网站 www.example.com 就会显示出来!这无需配置任何新的虚拟主机。
如果我转到我的 DNS 记录并定义 test2.example.com 等,情况也是如此。无需触碰我的服务器,这些新的 URL 就可以为我的网站提供服务。
这不是我想要的!我想使用基于名称的虚拟主机,并为每个子域托管不同的网站。
我的问题可能出在哪里?
这是我的虚拟主机文件:
ServerSignature Off
ServerTokens Prod
#NameVirtualHost *:80 - this is defined in a default config file already.
<VirtualHost *:80>
ServerAdmin [email protected]
UseCanonicalName On
ServerName www.example.com
DocumentRoot /home/ubuntu/example/public
ErrorLog /home/ubuntu/example/log/error.log
<Directory /home/ubuntu/example/public/>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
答案1
如果没有任何匹配的虚拟主机可用,apache 将使用它认为的默认虚拟主机。如果您希望显示空白页,请将其设置为第一个虚拟主机,然后定义您的 www.example.com 条目。