可能重复:
多个 IP 地址上的多个虚拟主机
我正在运行 Ubuntu 11.10,我的 VPS(Linode)分配了两个 IP 地址。
我已按照他们的指南启用静态地址(可以在这里找到:http://www.linode.com/wiki/index.php/Configure_Static_IPs)
目前的情况是,我在那个 Linode 上有 3 个网站,我想设置它们,这样 site1 和 site2 将使用 IP1,而 site3 将使用 IP3
/etc/apache2/sites-available/site1.com
<VirtualHost 1.1.1.1:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin [email protected]
ServerName site1.com
ServerAlias www.site1.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/site1/public_html
# Custom log file locations
LogLevel warn
ErrorLog /home/site1/public_html/log/error.log
CustomLog /home/site1/public_html/log/access.log combined
</VirtualHost>
/etc/apache2/sites-available/site2.com
<VirtualHost 1.1.1.1:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin [email protected]
ServerName site2.com
ServerAlias www.site2.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/site2/public_html
# Custom log file locations
LogLevel warn
ErrorLog /home/site2/public_html/log/error.log
CustomLog /home/site2/public_html/log/access.log combined
</VirtualHost>
/etc/apache2/sites-available/site3.com
<VirtualHost 2.2.2.2:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin [email protected]
ServerName site3.com
ServerAlias www.site3.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/site3/public_html
# Custom log file locations
LogLevel warn
ErrorLog /home/site3/public_html/log/error.log
CustomLog /home/site3/public_html/log/access.log combined
</VirtualHost>
ports.conf 的相关摘录:
NameVirtualHost 1.1.1.1:80
NameVirtualHost 2.2.2.2:80
Listen 1.1.1.1:80
Listen 2.2.2.2:80
问题是,我在所有三个网站上都获取了 site1 的内容。我不知道为什么会发生这种情况。您能帮忙吗?
注意:我已经为所有 3 个网站运行了 a2ensite,启动 apache2 服务时没有出现任何错误/警告。
答案1
假设您的配置与上述配置一致,那就完美了。但是请确保您已启用放入 sites-available 中的所有站点,例如a2ensite site3.com
。该命令的作用是从 sites-available 中的文件创建到 sites-enabled 的符号链接。Ubuntu 上的 Apache 默认配置为解析 sites-enabled 中的任何内容,但不解析 sites-available 中的任何内容;sites-available 只是一个存储库。
另请确保您没有在 VirtualHost 指令的任何地方使用 *:80。
如果以上操作均失败,请运行apache2ctl -t -D DUMP_VHOSTS
并查看您的活动 VirtualHosts 是什么。在此处发布输出。