Нужна помощь по следующей проблеме 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 /- существующие статические страницы (из
DocumentRoot
apache) должны обслуживаться как обычно 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 в качестве обратного прокси-сервера для обработки указанных выше требований?