Нужна помощь по следующей проблеме reverse-proxy в Apache.
- есть Apache 2.4 на локальном хосте:80 (aaaa:80)
- есть 3 разных веб-приложения
- один работает на локальном хосте:8000 (аааа:8000)
- два других находятся в других машинах - так хххх:8000 и гггг:8000
- иметь некоторый статический контент (несколько html-страниц) на базовом apache:80-е
DocumentRoot
Требования:
appX(на xxxx:8000) должен быть доступен по адресу http:// aaaa / appX /appY(на yyyy:8000) как http:// aaaa / appY /- существующие статические страницы (из
DocumentRootapache) должны обслуживаться как обычно apache defapp- все остальные должны быть прокси в aaaa:8000
Легко настроить appX и appY следующим образом:
ProxyPass /appX/ http://x.x.x.x:8000/
ProxyPassReverse /appX/ http://x.x.x.x:8000/
ProxyPass /appY/ http://y.y.y.y:8000/
ProxyPassReverse /appY/ http://y.y.y.y:8000/
Выше работает нормально. Поэтому при попытке доступа http://localhost/appX/ получил ответ от appX на x.x.x.x:8000 .
Но есть проблема с default destinaton по умолчанию для everything other . Когда пытался добавить:
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
Это не работает, как я надеюсь ...
С учетом вышесказанного хочу сказать apache - все остальное, что не является /appX/ или /appY/ отправлять в 0:8000 .
И это, к сожалению, не работает, defapp который работает в 0:8000 получил запросы на appX и appY , а также запросы на статические страницы.
Переключение порядка определений, так
#define first the "default destination"
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
#and after the appX and appY
ProxyPass /appX/ http://x.x.x.x:8000/
ProxyPassReverse /appX/ http://x.x.x.x:8000/
ProxyPass /appY/ http://y.y.y.y:8000/
ProxyPassReverse /appY/ http://y.y.y.y:8000/
тоже не работает. Все прокси на localhost:8000 .
Итак, вопрос: возможно ли настроить Apache в качестве обратного прокси-сервера для обработки указанных выше требований?
