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

обратный прокси - понимание прохода прокси - apache mod_proxy

Я запускаю Tomcat на моем сервере Linux, и я хочу использовать для этого обратный прокси. После прочтения руководства на apacha для mod_proxy я не совсем понял путь / в proxypass.

Приведу небольшой пример. каталог для моего кота - / tomcat / webapp. Верна ли следующая конфигурация?:

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPass /tomcat/webapp         http://127.0.0.1:8080
ProxyPassReverse /tomcat/webapp  http://127.0.0.1:8080
</VirtualHost> 

Я был бы благодарен, им может помочь кто-нибудь с опытом.

Теоретически в зависимости от того, что ProxyPass директиву, которую вы выберете, она будет работать, даже если вы выберете прокси http://example.com:8080/webapp/ так как http://example.com/foo/bar/baz/.

Однако, если ваше приложение использует абсолютные пути в гиперссылках, лучше использовать один и тот же путь URI для обоих Apache и Кот или у вас будут проблемы как в этот вопрос. Так:

  • если ваше приложение написано хорошо, выберите свой любимый URL-адрес и настройте развертывание веб-приложений на Tomcat в соответствии с ним.
  • если ваше приложение плохо написано (например, в нем есть жестко запрограммированные пути, как в этот вопрос настроить Apache путь, соответствующий жестко заданному пути развертывания.

В любом случае вы должны использовать:

ProxyPass "/path/to/webapp/" "http://127.0.0.1:8080/path/to/webapp/"

PS: Поскольку, видимо, вы хотите запустить Tomcat на двух портах, лучше, если вы сообщите веб-приложению, что оно проксируется и что порт 8443 доступ через SSL:

<Connector port="8080"
           proxyName="example.com"
           proxyPort="80"
           redirectPort="443" />
<Connector port="8443"
           proxyName="example.com"
           proxyPort="443"
           scheme="https" secure="true" />

поэтому веб-приложение не будет генерировать бесполезные перенаправления из порта 8443 портировать 443.