Что нужно настроить в конфигурации прокси AJP?

У меня есть HTTPD-сервер Apache в нашем продукте, и мне нужно добавить прокси AJP в какое-то конкретное приложение.

Порт Tomcat AJP - 8009, а порт HTTP Tomcat - 8080 (завершение SSL в Apache). Это прокси AJP, который мне нужно настроить.

<Directory /app>
    AuthType None
    Allow from all
    Satisfy any
    AllowOverride None
    Options None FollowSymLinks
</Directory>

<Proxy http://localhost:8080/app >
    AuthType None
    Allow from all
    Order Deny,Allow
    Satisfy any
    Options None FollowSymLinks
</Proxy>
ProxyPass /app ajp://localhost:8009/app
<Location /app>
        ProxyPassReverse ajp://localhost:8009/app
</Location>

Вопрос: Что нужно настроить в <Прокси…> ? <Прокси-сервер http: // localhost: 8080 / app> или <Прокси-сервер ajp: // localhost: 8009 / app>

Добавлен Разъяснение. Вся конфигурация содержит корневую конфигурацию (см. Ниже).

Мне просто нужно добавить прокси AJP к какому-то конкретному приложению.

<Directory />
    Deny from all
    Allow from localhost
    Order Deny,Allow
    AuthType Basic
    Require valid-user
    AllowOverride None
    Satisfy any
    Options None FollowSymLinks
</Directory>


<Proxy *>
    Deny from all
    Order Deny,Allow
    AuthType Basic
    Require valid-user
    Satisfy any
    Options None FollowSymLinks
</Proxy>
1
задан 23 December 2016 в 14:28
3 ответа

OK, у вас есть несколько неправильных представлений о конфигурации Apache, которые требуют исправления.

  1. <Каталог> блоки относятся к абсолютным путям файловой системы. Не URI-пути и не пути относительно корня документа. При проксировании, как упоминал Дэвид Хатчинсон, вы должны использовать вместо него блоки .
  2. блоки (почти) используются исключительно для настройки прямых прокси, а не обратных. Удалите эти блоки, они вам не нужны. Опять же, используйте блоки.
  3. Не используйте ProxyPass или ProxyPassReverse внутри . Несмотря на то, что это действительно так, это может все усложнить. Просто используйте две версии этих директив с аргументами. Также, если у вас нет причин не использовать трейлинговые слэши в обеих этих директивах.

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

ProxyPass /app/ ajp://localhost:8009/app/
ProxyPassReverse /app ajp://localhost:8009/app/

<Location />
  Order Allow,Deny
  Allow from localhost
  AuthType Basic
  Require valid-user
</Location>

<Location /app/>
  Allow from all
</Directory>

Я удалил директивы там, где они были по умолчанию.

.
3
ответ дан 3 December 2019 в 17:03

Блок "<Прокси" вообще не нужен, чтобы делать то, что вы пытаетесь достичь.

Директивы ProxyPass и ProxyPassReverse - это все, что вам нужно. Однако для удобочитаемости я бы посоветовал либо вставить оба в блок Location, либо ни то, ни другое.

Если вам нужно настроить различные параметры для пути к вашему приложению, например, аутентификацию клиентского сертификата, используйте блок Location (или LocationMatch), как вы уже настроили.

2
ответ дан 3 December 2019 в 17:03

Вы можете просто использовать . Думаю, это будет хорошо.

0
ответ дан 3 December 2019 в 17:03

Теги

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