Назад | Перейти на главную страницу

Обратный прокси на страницу входа

Я изо всех сил пытаюсь заставить свой обратный прокси-сервер работать должным образом ... Мой экземпляр Apache должен работать как обратный прокси-сервер для внутреннего сервера приложений, как указано в директивах proxypass / proxyreverse ниже. Желаемое поведение: запросы клиентов https://my_website/context_path. Этот запрос следует перенаправить на http://my_backend/context_path/loginServlet Все остальные запросы должны быть переданы на внутренний сервер через прокси-сервер.

   RewriteEngine  on

    RewriteCond  "%{REQUEST_URI}"  "https://my_website/context_path"
    RewriteRule ^/my_website$   http://my_backend/context_path/loginServlet$1

    ProxyPass /my_website/ http://my_backend/context_path/
    ProxyPassReverse /my_website/  http://my_backend/context_path/

Любая помощь приветствуется. Спасибо заранее.

Умм .. Вы уверены, что хотите перенаправить все логины на обычную HTTP-страницу, обслуживаемую непосредственно вашим сервером? Доступен ли ваш внутренний сервер извне? Если действительно так, то возможно:

<VirtualHost *:443>
  ServerName my_website.example.com
  ...

  RedirectMatch "^/context_path$" "http://my_backend.example.com/context_path/loginServlet"

  ProxyPass /context_path/ http://my_backend.example.com/context_path/
  ProxyPassReverse /context_path/  http://my_backend.example.com/context_path/
</VirtualHost>

Но я думаю, что вы действительно пытаетесь этого добиться; перенаправление на ваш прокси вместо бэкэнда:

<VirtualHost *:443>
  ServerName my_website.example.com
  ...

  RedirectMatch "^/context_path$" "/context_path/loginServlet"

  ProxyPass /context_path/ http://my_backend.example.com/context_path/
  ProxyPassReverse /context_path/  http://my_backend.example.com/context_path/
</VirtualHost>

Обратите внимание, что я использовал RedirectMatch из mod_alias вместо RewriteRule из mod_proxy, потому что этого достаточно для такого простого внешнего перенаправления и может быть также проще для понимания.