У меня есть сервер 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.
Изменение:
<VirtualHost *:8080>
Кому:
NameVirtualHost *
<VirtualHost *:8080>
См. Объяснение здесь: https://serverfault.com/a/497075/164840
Похоже, вы пропали:
</VirtualHost>
в конце файл, который вы вставили, чтобы закрыть этот vhost. Также убедитесь, что на ваших сайтах есть информация о вашем новом виртуальном хосте.