НАЗАД: у меня 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?