Назад | Перейти на главную страницу

Как объединить несколько директив ProxyPass в Apache?

Мне нужно хранить конфигурации ProxyPass в отдельных файлах из-за системы развертывания, которую мы используем в следующей форме:

Файл 1:

<VirtualHost *:80>
    <Location /qa1/>
        ProxyPass http://localhost:8800/qa1/
        ProxyPassReverse http://localhost:8800/qa1/
        ProxyPassReverseCookiePath / /qa1/
    </Location>
</VirtualHost>

Файл 2:

<VirtualHost *:80>
    <Location /qa2/>
        ProxyPass http://localhost:8801/qa2/
        ProxyPassReverse http://localhost:8801/qa2/
        ProxyPassReverseCookiePath / /qa2/
    </Location>
</VirtualHost>

но Apache жалуется, что: [предупредить] дефолт VirtualHost перекрывается на 80-м порту, первый имеет приоритет

Любая идея, если / как возможно, чтобы Apache объединил обе конфигурации?

Использовать Include.

Файл 1: qa1.conf

<Location /qa1/>
    ProxyPass http://localhost:8800/qa1/
    ProxyPassReverse http://localhost:8800/qa1/
    ProxyPassReverseCookiePath / /qa1/
</Location>

Файл 2: qa2.conf

<Location /qa2/>
    ProxyPass http://localhost:8801/qa2/
    ProxyPassReverse http://localhost:8801/qa2/
    ProxyPassReverseCookiePath / /qa2/
</Location>

Файл 3: vhost.conf

<VirtualHost *:80>
    Include qa1.conf
    Include qa2.conf
</VirtualHost>

просто сохраните директивы Location отдельно

файл qa1.conf

<Location /qa1/>
    ProxyPass http://localhost:8800/qa1/
    ProxyPassReverse http://localhost:8800/qa1/
    ProxyPassReverseCookiePath / /qa1/
</Location>

файл qa2.conf

<Location /qa2/>
    ProxyPass http://localhost:8801/qa2/
    ProxyPassReverse http://localhost:8801/qa2/
    ProxyPassReverseCookiePath / /qa2/
</Location>

затем

<VirtualHost *:80>
    include qa1.conf 
    include qa2.conf
</VirtualHost>