Apache (2.4) обслуживает только 1-й виртуальный хост, найденный на сервере эластичного бобового стебля

У меня есть сервер Elastic Beanstalk, который я использую для основного сайта моего работодателя, example.com, и они хотят, чтобы я разместил на нем один из их вспомогательных сайтов: go.example.com.

Я только что создал новая конфигурация ebextension для создания второго виртуального хоста. Проблема, которую я обнаружил, заключается в том, что Apache (HTTPD) хочет использовать только первую запись vhost.

Вот мои vhosts:

 # 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     webmaster@example.com

        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     webmaster@example.com

      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.

0
задан 16 November 2018 в 01:25
2 ответа

Изменение:

  <VirtualHost *:8080>

Кому:

  NameVirtualHost *
  <VirtualHost *:8080>

См. Объяснение здесь: https://serverfault.com/a/497075/164840

1
ответ дан 4 December 2019 в 15:48

Похоже, вы пропали:

  </VirtualHost>

в конце файл, который вы вставили, чтобы закрыть этот vhost. Также убедитесь, что на ваших сайтах есть информация о вашем новом виртуальном хосте.

0
ответ дан 4 December 2019 в 15:48

Теги

Похожие вопросы