Apache两个站点一个ip

Apache两个站点一个ip

我多次这样做,但现在不起作用。我已将 apache 配置为使用不同的端口,并使用不同的 ip,并且我也使同样的事情起作用了...我已将 bind 配置为我的本地 dns,当我转到我的主机时(例如,我有一个名为 vipc 的 Linux 服务器 CentOS),当我转到 http://vircent.. 时,它会打开我放在 /var/www/page1/index.html 中的页面。现在我想做的是,当我转到 http://vircent/site1 时 - 从 page1 目录打开 index.html。但我还希望当我转到 htt://vircent/site2 时从 page2 目录打开 index.html。

这就是我现在所拥有的,我不知道它是否会起作用

    NameVirtualHost *:80
    <VirtualHost *:80>
    ServerName      vircent
    DocumentRoot    /var/www/page1
    </VirtualHost>

    <VirtualHost *:80>
    ServerName      vircent
    DocumentRoot    /var/www/page2
    </VirtualHost>

答案1

您正在尝试同时做两件不同的事情。

如果您想要http://vircent/site1http://vircent/site2访问这两个不同的站点,您需要设置一个包含这两个位置的站点(“vircent”)(最简单的方法就是将目录物理移动到适当的位置,例如在本例中,让 DocumentRoot 指向 /var/www,在这种情况下,http://vircent/page1它将http://vircent/page2按您希望的方式工作)。

基于名称的虚拟主机有两个不同的名称,例如 vircent1 和 vircent2——顺便提一下,对于这类事情,最好使用完全合格的域名。因此,您可以将 httpd.conf 更改为类似

NameVirtualHost *:80
<VirtualHost *:80>
ServerName      vircent1
DocumentRoot    /var/www/page1
</VirtualHost>

<VirtualHost *:80>
ServerName      vircent2
DocumentRoot    /var/www/page2
</VirtualHost>

(并在BIND中做相应的修改)

事实上,您有两个具有相同 ServerNames 的不同虚拟主机,这意味着只有第一个虚拟主机得到服务。

相关内容