
Я запускаю 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
.