Apache 多域设置

Posted

技术标签:

【中文标题】Apache 多域设置【英文标题】:Apache multiple domains setup 【发布时间】:2012-06-24 01:50:07 【问题描述】:

我正在设置的基于 linux 的 Apache 2.2 服务器遇到了一个非常简单的问题。我想在同一台服务器上设置两个完全不同的域。 但它只提供第一个标签的内容!我在 Apache.org 上搜索了 *** 并阅读了项目,但没有运气。

我按照 Apache.org 上的说明将这两个部分放在我的 http.conf 文件的底部。

<VirtualHost *:80>
    DocumentRoot /var/www/mydomain1
    ServerName sub1.mydomain1.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/mydomain2
    ServerName sub2.mydomain2.com
</VirtualHost>

现在,当我使用浏览器访问:http://sub1.mydomain1.com 时,一切正常。但是如果我去http://sub2.mydomain2.com 我仍然只能得到位于/var/www/webfiles/mydomain1 中的内容。

我做了很多显而易见的事情,例如: - 服务 httpd 重启 - 我更改了 httpd.conf 中两个条目的顺序,再次,它只为列表中的第一个提供服务。 - 我在 Google 上搜索过的一份支持文档说要确保在您的系统上具有以下指向有效域的入口点。所以我输入了这个(但它没有改变任何东西): 服务器名称 sub2.mydomain2.com:80

这一定很傻,但我想不通!

【问题讨论】:

【参考方案1】:

您需要在两个单独的虚拟主机中设置两个域。通常,当我这样做时,我喜欢拆分一个包含虚拟主机文件的包含目录,每个文件都包含一个虚拟主机。

<VirtualHost *:80>
  ServerName site1.com
  DocumentRoot "/var/www/site1"
</VirtualHost>
<VirtualHost *:80>
  ServerName site2.com
  DocumentRoot "/var/www/site2"
</VirtualHost>

【讨论】:

hsanders - 是的,这正是我所做的。您在我的问题中没有很好地看到它,因为我是个白痴,并且没有正确格式化问题的代码部分。我现在正在尝试修复它。 这很难从原版中分辨出来。您是否有任何一个虚拟主机指令之外的默认 DocumentRoot ? 嗯。我的 httpd.conf 中确实有这一行,但该目录不是当前内容的来源。 ---- DocumentRoot "/var/www/html" 我测试了注释掉 DocumentRoot 语句并且没有改变任何东西。【参考方案2】:

好的,我想通了。这很愚蠢。我只需要取消注释这一行,这样我就可以真正使用所有虚拟主机了:

NameVirtualHost *:80

【讨论】:

以上是关于Apache 多域设置的主要内容,如果未能解决你的问题,请参考以下文章

unbuntu apahce 2 设置 多域名

Nginx配置多域名访问设置

apache实现多域名虚拟主机的SSL认证

apache_conf 多域配置TypoScript

php 多站点多域设置多站点多域多站点多域多选

Nginx基础, 多域名