gpt4 book ai didi

apache - 在同一台服务器上运行多个域

转载 作者:行者123 更新时间:2023-12-04 19:16:51 25 4
gpt4 key购买 nike

我有一个运行 Apache 的 Ubuntu 服务器,并且在 /var/www/website/abc 下有 3 个站点, /var/www/website/xyz/var/www/website/lmn .我有 3 个域( www.abc.comwww.xyz.comwww.lmn.com )映射到同一台机器(将相同的 ip 映射到 Godaddy 上的 3 个不同域)。

所以我搜索了一下,发现了这个链接 - virtual host setup并制作了abc.com.conf/etc/apache2/sites-available/并相应地适用于其他网站。启用站点,然后重新启动 apache,但相同的站点(/var/www/website/abc)出现在所有 3 个域上。我重新检查了路径,但它们似乎是正确的。我不知道出了什么问题。如何将它们路由到相应的站点?

最佳答案

如果您将来共享代码(在本例中为 apache 配置文件)以找出问题所在,这将很有帮助。无论如何,这就是文件的大致外观(它们不必看起来像这样,还有其他配置方式)。

  • 首先检查/etc/apache2/apache2.conf 并确保您看到以下代码:
    IncludeOptional sites-enabled/*.conf

  • apache2.conf 文件是主要的配置文件。上面的那一行包括启用站点的文件夹中的所有配置文件。如果您使用 Red Hat 派生的操作系统,您会注意到配置文件结构不同(像 Ubuntu 这样的 Debian 派生产品喜欢将所有内容拆分成大量的配置文件,而 Red Hat 派生产品则将它们放在一起)
  • 确保启用站点的文件夹中的每个文件都包含如下所示的行。

  • 对于 abc.com.conf:
    <VirtualHost *:80>
    ServerName www.abc.com
    DocumentRoot /var/www/website/abc
    </VirtualHost>

    如果您还希望“abc.com”指向此虚拟主机,请在 ServerName 行下方输入“ServerAlias abc.com”。您在这里所做的是为端口 80 (:80) 上的任何 IP 地址 (*) 创建一个 VirtualHost block 。如果您想确保 VirtualHost 仅与特定 ip 匹配(仅当有多个外部 ip 指向您的网络服务器时才可能需要),您可以用您的外部 ip 地址替换开头的 VirtualHost 行中的 *。只要 Host HTTP header 是 www.abc.com,ServerName 行就告诉 apache 匹配这个 VirtualHost。 ServerAlias 可用于指定要匹配的其他主机。请记住,www.abc.com 和 abc.com 被视为不同的主机。 DocumentRoot 行设置提供文件的目录。

    对于 xyz.com.conf 也是如此:
    <VirtualHost *:80>
    ServerName www.xyz.com
    DocumentRoot /var/www/website/xyz
    </VirtualHost>

    如果您还希望“xyz.com”指向此虚拟主机,请在 ServerName 行下方输入“ServerAlias xyz.com”。

    最后对于 lmn.com.conf:
    <VirtualHost *:80>
    ServerName www.lmn.com
    DocumentRoot /var/www/website/lmn
    </VirtualHost>

    如果您还希望“lmn.com”指向此虚拟主机,请在 ServerName 行下方输入“ServerAlias lmn.com”。

    关于apache - 在同一台服务器上运行多个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34694736/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com