У меня Tomcat работает вместе с apache2 на Amazon AMI. До сих пор все мои пользователи получали доступ к моему веб-приложению, помещая номер порта 8080 в URL-адрес, а затем tomcat выполняет автоматическое перенаправление на 8443.
Но теперь я хочу, чтобы все мои пользователи получали доступ к моему приложению с 80/443, поэтому я настроил ssl на apache для пересылки всех запросов с порта 80 на 443 и 443 на порт 8080. Все работает хорошо.
Проблема в том, что вся адресная строка браузера моего существующего пользователя имеет номер порта 8443 в URL-адресе в качестве автозаполнения, и пользователи, скорее всего, попадут только по этому URL-адресу. Итак, я хочу добавить конфигурацию, которая перенаправит весь трафик 8080/8443 на порт 80.
Я попытался установить iptables-services, но не смог правильно понять. Я также сомневаюсь, что это просто закончится бесконечным циклом перенаправления, порт 8080-> 80-> 8080. Поэтому, пожалуйста, предложите мне более подходящий способ справиться с этим.
Вы можете изменить коннектор в server.xml, чтобы Tomcat прослушивал несколько портов. После этого услуга будет доступна по телефонам 80, 443, 8080 и 8443.
Обратите внимание, что вы, похоже, не используете mod_jk, т. Е. Пользователи отправляются по ссылке с вашего Apache httpd на вашу установку Tomcat. С помощью mod_jk пользователи всегда будут подключаться к httpd, который перенаправит запрос на Tomcat, тем самым исключив прослушивание Tomcat на 80/443. Оба веб-сервера не могут прослушивать одни и те же порты на одном сервере.
Вы можете перенастроить Tomcat для прослушивания на другом порту, например 8088, а затем настройте Apache:
Любой трафик на вашем http://example.com, http://example.com:8080 и https://example.com:8443 перенаправить на https://example.com (т.е. порт 443). Они не будут переданы вашему Tomcat.
Пропускать трафик только из https://example.com (то есть порт 443) на порт 8088 Tomcat.
Это решит проблему переадресации, а также сделает использование SSL обязательным.
В качестве альтернативы вы можете сделать все вышеперечисленное с помощью Балансировщик нагрузки приложений AWS - он может выполнять перенаправления, завершение SSL, и только трафик SSL с порта 443 проходит через ваш Tomcat. Дополнительным преимуществом является то, что вы можете использовать Amazon Certificate Manager для управления и обновления ваших сертификатов SSL.
Надеюсь, это поможет :)