子域名无法与 apache2 ubuntu 上的虚拟主机一起使用

子域名无法与 apache2 ubuntu 上的虚拟主机一起使用

我正在尝试在我的 ec2 账户上设置一个子域,但不知道发生了什么。我找了几个小时,还是没能找到答案 :-/

我正在尝试使用虚拟主机设置子域名,但无论我如何尝试,浏览器都找不到子域名 :-(

我已经设置了以下 vhosts 文件:

apache2/站点可用/mysite(此网站目前有效)



    <VirtualHost *:80>
        ServerName mysite.com
        ServerAdmin webmaster@localhost

        DocumentRoot /home/sites/mysite

        <Directory /home/sites/mysite>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/mysite-error.log

        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined

    </VirtualHost>

apache2/站点可用/红色(这是我尝试设置的子域名)



    <VirtualHost *:80>
        ServerName red.mysite.com
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/red
        <Directory /var/www/red>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/red-error.log

        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/red-access.log combined

    </VirtualHost>

Apache mod_rewrite 已启用。

我已经使用 a2ensite 启用了两个站点,并确保每次进行更改时都重新启动 apache。

/etc/hosts



    127.0.0.1 localhost
    127.0.0.1 mysite.com
    127.0.0.1 red.mysite.com

任何帮助,将不胜感激。

谢谢!

答案1

如何调试所有类似的错误:

1)确保域名 red.whatever.com 指向正确的 IP

怎么做?使用 Linux/OSX 上的 DIG 等工具,或求助于在线工具
在这种情况下浏览器报告的常见错误是 COULD NOT FIND DOMAIN...

2)如果 IP 正确,请检查两个 Apache 日志(error.log 和 access.log)

如果这些日志中没有信息,请检查您的防火墙,查看端口 80 是否打开。
在这种情况下,浏览器报告的常见错误是无法连接……

3)IP 正确,端口开放,但 Apache 未提供您期望的内容

日志文件将提供问题的解决方案
浏览器将显示服务器发送的 404 或类似的 http 错误...

编辑: 从您的评论来看,您的问题出在第一个。

答案2

NameVirtualHost指令(例如)是否NameVirtualHost *:80出现在配置文件中的虚拟主机部分之前?如果没有,所有请求都将转到第一个虚拟主机。

相关内容