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

Необходимо передать переменные среды через прокси-сервер Apache

НАЗАД: у меня Tomcat подключен к Apache, а JKMount'ed - к webapps.demo.example.com.

FRONTEND: основной VirtualHost настроен для demo.example.com. У меня есть одно приложение, прокси для BACKEND. Это отлично работает, за исключением того, что ServerName и ContextPath нужно извлекать из FRONTEND.

Пробовал ниже, следуя этим инструкциям: https://www.xinotes.net/notes/note/1954/

<VirtualHost *:80>
    DocumentRoot "/home/example.com"
    ServerName demo.example.com

    ProxyPassInterpolateEnv On
    RewriteEngine on
    RewriteMap lowercase int:tolower

    RewriteRule ^ - [E=SERVER_NAME:${lowercase:%{SERVER_NAME}}]

    ProxyPreserveHost On

    ProxyPass "/Project1/Test" "http://webapps.demo.example.com/Test1"
    ProxyPassReverse /Project1/Test http://%{SERVER_NAME} interpolate

    ErrorLog "/home/logs/httpd/example-error_log"
    CustomLog "/home/logs/httpd/example-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/home/webapps"
    ServerName webapps.demo.example.com

    JkMount /Test1 worker1
    JkMount /Test1/* worker1

    ErrorLog "/home/logs/httpd/webapps-error_log"
    CustomLog "/home/logs/httpd/webapps-access_log" common
</VirtualHost>

когда ProxyPreserveHost On добавлено, что мои прокси-ссылки возвращают 404 вместо приложения Test1.

Как правильно использовать прокси при передаче определенных переменных среды с сервера FRONTEND? Я могу изменить приложение Test1, если это абсолютно необходимо. Но мне нужна переменная для работы. Project1 не может быть жестко запрограммированным значением.

Здесь может помочь mod_proxy_html или mod_headers?