Обратный прокси-сервер для страницы входа

Я изо всех сил пытаюсь заставить свой обратный прокси-сервер работать должным образом ... Мой экземпляр 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/

Любая помощь приветствуется. Заранее большое спасибо.

0
задан 15 May 2017 в 12:56
1 ответ

Ммм .. Вы уверены, что хотите перенаправить все логины на обычную 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, потому что этого достаточно для такого простого внешнего перенаправления и может быть также легче понять.

0
ответ дан 5 December 2019 в 08:10

Теги

Похожие вопросы