Апач ProxyPass динамического узла

Я пытаюсь настроить Apache для прокси на внутренний сервер на основе динамических имен хостов и с помощью других портов. Кажется, это слишком сложно для меня.
Это то, что у меня есть:

<Location /awesomewebapp>
ProxyPass http://[internalservername]:8080/awesomewebapp
ProxyPassReverse http://[internalservername]:8080/awesomewebapp
</Location>

но это (очевидно) не динамичная. Я работал над переписыванием правил и т. д. но у меня ничего не получилось. Что мне действительно нужно, так это что-то вроде:

^/[internalservername]/awesomewebapp
      proxy internally to
http://[internalservername]:8080/awesomewebapp

спасибо заранее

19
задан JCS81
19.12.2022 3:26 Количество просмотров материала 3640
Распечатать страницу

2 ответа

вы можете использовать RewriteRule для прокси-запрос. The документация apache для использования mod_rewrite в качестве прокси показывает следующее:

описание:

mod_rewrite предоставляет флаг [P], который позволяет передавать URL-адреса через mod_proxy на другой сервер. Здесь приводятся два примера. В одном примере URL-адрес передается непосредственно на другой сервер и подается так, как если бы это был локальный URL-адрес. В другом примере мы прокси недостающее содержимое к a внутренний сервер.

устранение:

чтобы просто отобразить URL на другой сервер, мы используем флаг [P], следующим образом:

RewriteEngine на RewriteBase "/продукция/" RewriteRule " ^widget/(.*)$" "http://product.example.com/widget/$1" [п] ProxyPassReverse "/продукция/виджет/" "http://product.example.com/widget/"

во втором примере, мы прокси-запрос, только если мы не сможем найти ресурс локально. Это может быть очень полезно при миграции с одного сервера на другой, и вы не уверены, что все содержимое уже перенесено.

RewriteCond "%{REQUEST_FILENAME}" !-Ф RewriteCond "%{REQUEST_FILENAME}" !-д RewriteRule "^/(.*)" "http://old.example.com/$1" [п] ProxyPassReverse "/" "http://old.example.com/"

второй пример, условно переписывая URL с помощью [P] флаг для прокси-запроса кажется тем, что вам нужно.

0
отвечен Brian Minton 2022-12-20 11:14

мое предыдущее "решение" все еще не работало должным образом, поэтому я удалил его, чтобы избежать путаницы. Кажется, это невозможно, как я хочу, но небольшой обходной путь, использующий поддомен вместо подкаталога, все еще заставляет его качаться.

RewriteCond %{HTTP_HOST} ([^.]+)
RewriteRule ^/(.*) http://%1:8080/ [P]

источник: http://www.vanbommelonline.nl/2011/10/using-apache-for-dynamic-reverse-proxy.html

0
отвечен JCS81 2022-12-20 13:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх