Прокси субдомена проходят все указывая на один сервер


У меня есть 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 10

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 для некоторых примеров о том, как это настроить.