Не удается заставить контейнер Apache docker обслуживать виртуальный хост с поддоменом

#apache #docker

#apache #docker

Вопрос:

У меня есть сайт, который я запускаю в настоящее время, который работает хорошо, но я пытался настроить его как для обучения, так и для того, чтобы сделать его более переносимым. Я использую официальные изображения apache и php и настраиваю свои виртуальные хосты идентично тому, как у меня на запущенном сайте, только с разными доменами. К сожалению, хотя я могу заставить один работать, второй — нет.

 NameVirtualHost *:80

<VirtualHost *:80>
    ServerName api.gamersplane.local
    DocumentRoot /var/www/api

    ErrorLog "/var/log/gamersplane.api"
    CustomLog "/var/log/gamersplane.api" common

    ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://api:9000/var/www/$1
    ProxyPassReverse ^/(.*.php(/.*)?)$ fcgi://api:9000/var/www/$1

    RewriteEngine On
    RewriteBase /
    RewriteRule !.(css|jpg|js|gif|png|ico|eot|woff|ttff|svg|psd)$ dispatch.php

    <Directory /var/www/api/>
        Options FollowSymLinks
        Require all granted
    </Directory>

    LogLevel notice
</VirtualHost>

<VirtualHost *:80>
    ErrorLog "/var/log/gamersplane"
    CustomLog "/var/log/gamersplane" common

    ProxyPreserveHost On
    ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://api:9000/var/www/$1
    ProxyPassReverse ^/(.*.php(/.*)?)$ fcgi://api:9000/var/www/$1

    ServerName gamersplane.local
    ServerAlias *.gamersplane.local
    DocumentRoot /var/www

    RewriteEngine On
    RewriteBase /
    RewriteRule !.(css|jpg|js|gif|png|ico|eot|woff|ttff|svg|psd)$ dispatch.php

    <Directory /var/www/>
        Options FollowSymLinks
        Require all granted
    </Directory>

    LogLevel notice
</VirtualHost>
  

Изначально у меня был первый vhost (api.gamersplane) second, но я подумал, что, возможно, проблема была в псевдониме сервера. Затем я сменил позицию и даже закомментировал базу (gamersplane.local), но безуспешно. Это работает на запущенном сайте, поэтому я не могу понять, что с ним не так.

Проверяя заголовки, возвращаемые Postman, я вижу, что в нем есть заголовки Apache и PHP, так что, похоже, что-ТО происходит, я просто не знаю, что.

Комментарии:

1. Я не уверен, что вы можете использовать подстановочный знак на ServerAlias

2. Он работает в рабочей среде (среда, отличная от docker). Но даже если я закомментирую этот виртуальный хост, другой не будет работать.

3. Добавьте serveralias. Но как обычное имя хоста (может совпадать с именем сервера)