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

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

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

я приведу небольшой пример. каталог для моего tomcat - /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> 

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

решение1

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

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

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

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

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

ПС: Поскольку, по-видимому, вы хотитезапустить 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.

Связанный контент