У меня Apache Tomcat работает с включенным SSL. У меня есть HTTP-сервер Apache, действующий в качестве обратного прокси-сервера, поэтому если мои пользователи нажимают http: // myserver / tomcat /, они передаются на http: // myserver: 8080 .
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
У меня также настроен HTTP-сервер Apache для SSL, поэтому, когда пользователи нажимают https: // myserver / tomcat /, они должны передаваться на https: // myserver: 8443 / .
С текущей конфигурацией ProxyPass & ProxyPassReverse они будут перенаправлены на URL не-ssl. Как настроить пропуск прокси-сервера таким образом, чтобы он перенаправлял на другой протокол и порт в зависимости от входящего запроса?
То есть, если кто-то входит через HTTPS, как я могу перенаправить его на свой tomcat @ https: // myserver: 8443 ?
Обновить:
@ Микрофон-Insch
Я старался:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Теперь, когда я захожу : https: // myserver / tomcat / я получаю "страница не найдена". В журнале ошибок я вижу "Файл не существует: / var / apache2 / htdocs / tomcat"
Это правильно, но я ожидал, что запрос будет перенаправлен на tomcat, работающий по адресу https: // myserver: 8443 / .
Думаю, мне нужно больше смотреть на виртуальные хосты, если что-то не выглядит явно неправильно.
источник
NameVirtualHost
директива здесь. Также вам необходимо добавить соответствующие директивы для включения SSL внутри вашего<VirtualHost *:443>
раздела.Ответы:
Вы должны сделать это с помощью двух независимых
<VirtualHost *:X>
директив. ВашиHTTP
директивы входят внутрь, в<VirtualHost *:80>
то время как вашиHTTPS
директивы входят внутрь<VirtualHost *:443>
. При необходимости настройте, если на вашем сервере настроено несколько виртуальных хостов на основе адреса или имени. См. Документацию по Apache 2 для более подробной информации.источник
Для полноты: если это вариант, рекомендуется завершить SSL в Apache, а не с помощью Tomcat. Предоставление Tomcat доступно только из Apache, это проще и не менее безопасно.
В этой настройке Apache будет прокси HTTP и HTTPS для
http://myserver:8080/
:источник