Apache(2.4)仅为在 Elastic beanstalk 服务器上找到的第一个虚拟主机提供服务

Apache(2.4)仅为在 Elastic beanstalk 服务器上找到的第一个虚拟主机提供服务

我有一个 Elastic Beanstalk 服务器,用于我雇主的主站点 example.com,他们希望我在此托管他们的一个辅助站点:go.example.com。

因此,我刚刚创建了一个新的 ebextension 配置来创建第二个 vhost。我发现的问题是 Apache (HTTPD) 只想使用第一个 vhost 条目。

这是我的虚拟主机:

 # I have Apache listening on port 8080 because I have varnish in front of my sites.
    <VirtualHost *:8080>

        ServerName      example.com
        ServerAlias     www.example.com
        ServerAdmin     [email protected]

        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^example.com
        RewriteRule ^(.*)$ http://www.example.com%{REQUEST_URI} [R=301,L]

        DocumentRoot "/var/app/current/httpdocs"

        <Directory "/var/app/current">
            AllowOverride All
            Require all granted
        </Directory>

        <Directory "/var/app/current/cgi-bin">
            AllowOverride All
            Options None
            Require all granted
        </Directory>

        <Directory "/var/app/current/httpdocs">
            Options FollowSymLinks
            AllowOverride All
            DirectoryIndex index.html index.php
            Require all granted
        </Directory>

    </VirtualHost>
    #go.example.com
    <VirtualHost *:8080>

      ServerName      go.example.com
      ServerAlias     staging.go.example.com
      ServerAdmin     [email protected]

      DocumentRoot    /var/www/go.example.com/httpdocs

      <Directory "/var/www/go.example.com">
          AllowOverride All
          Require all granted
      </Directory>

      <Directory "/var/www/go.example.com/httpdocs">
          Options FollowSymLinks
          AllowOverride All
          DirectoryIndex index.html index.php
          Require all granted
      </Directory>

因此服务器将始终监听 example.com,并且通过上述 vhost 顺序,example.com 将提供服务,/var/app/current/httpdocs而 go.example.com 只是一个空白页。

如果我交换 vhost 顺序,那么 go.example.com 是第一个,然后 example.com 提供服务/var/www/go.example.com/httpdocs。而 go.example.com 仍然是一个空白页。

没有什么真正让我感到吃惊的事情,而且我在构建常规的 EC2 时没有遇到这个问题。

答案1

改变:

  <VirtualHost *:8080>

到:

  NameVirtualHost *
  <VirtualHost *:8080>

请参阅此处的解释:https://serverfault.com/a/497075/164840

答案2

看起来好像你遗漏了:

  </VirtualHost>

在文件末尾粘贴以关闭该虚拟主机。同时确保您的 sites-enabled 中包含有关新虚拟主机的信息。

相关内容