Прокси субдомена проходят все указывая на один сервер
У меня есть 2 приложения, размещенные на одном apache tomcat на порту 8080 >
http://mydomain.com:8080/application1
http://mydomain.com:8080/application2
Я хотел бы запустить прокси-сервер apache перед ними обоими со следующим поведением >
http://mydomain.com/* (apache2) -> http://mydomain.com:8080/application1/* (tomcat)
http://subdomain.mydomain.com/* (apache2) -> http://mydomain.com:8080/application2/* (tomcat)
Лучшее, что у меня есть сейчас, - это 2 машины с разными IP-адресами и маршрутизацией домена и поддоменов соответственно.
В идеале я хочу прокси apache и 2 приложения быть на одной машине...
Может ли кто-нибудь с навыками kick arse DEVOps помочь?
2 ответа:
В дополнение к ответу @Jon Lin, рассмотрите возможность использования
ProxyPassReverse
также, просто на случай, если ваше приложение делает какие-либо перенаправления. Это делает Apache правильный URL-адрес на ответах (подробнее о ProxyPassReverse). Это будет выглядеть так:<VirtualHost subdomain.mydomain.com:80> ProxyPass / http://localhost:8080/application1/ ProxyPassReverse / http://localhost:8080/application1/ </VirtualHost> <VirtualHost mydomain.com:80> ProxyPass / http://localhost:8080/application1/ ProxyPassReverse / http://localhost:8080/application1/ </VirtualHost>
Надеюсь, это поможет.
В хост конфиг для mydomain.com (Апач), необходимо
ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1
В конфигурации virtualhost для subdomain.mydomain.com (Апач), ты неде
ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1
Оба конфигурационных файла должны быть на одной машине и даже в одном файле. Смотрите VirtualHost Examples для некоторых примеров о том, как это настроить.