apache to tomcat: mod_jk против mod_proxy

Каковы преимущества и недостатки использования mod_jk и mod_proxy для запуска экземпляра tomcat с помощью apache?

Я использую mod_jk в производстве в течение многих лет, но я слышал, что это «старый способ» работы с tomcat. Стоит ли мне подумать об изменении? Будут ли какие-то преимущества?


person cherouvim    schedule 04.07.2009    source источник
comment
У нас было больше проблем со всеми вариантами mod_proxy_*, и мы успешно используем mod_jk в производстве как для Tomcat (5.5, 6, 7), так и для JBoss/WildFly.   -  person mirabilos    schedule 15.01.2015


Ответы (4)


Сравнение плюсов и минусов этих модулей доступно на http://blog.jboss.org/

мод_прокси

* Pros:
      o No need for a separate module compilation and maintenance. mod_proxy,
        mod_proxy_http, mod_proxy_ajp and mod_proxy_balancer comes as part of 
        standard Apache 2.2+ distribution
      o Ability to use http https or AJP protocols, even within the same 
        balancer.
* Cons:
      o mod_proxy_ajp does not support large 8K+ packet sizes.
      o Basic load balancer
      o Does not support Domain model clustering

mod_jk

* Pros:
      o Advanced load balancer
      o Advanced node failure detection
      o Support for large AJP packet sizes
* Cons:
      o Need to build and maintain a separate module
person cherouvim    schedule 06.07.2009
comment
Что делать, если вы используете Apache 2.0? - person blak3r; 06.08.2011
comment
Я нашел эту запись в блоге tomcatexpert.com /blog/2010/06/16/ полезно. - person CodeReaper; 20.02.2012
comment
Необходимо создать и поддерживать отдельный модуль, который поставляется с apache, поэтому вам не нужно что-то создавать... - person Yura; 15.03.2016
comment
@yura - это может зависеть от версии вашей ОС. Centos 7.x не имеет доступного модуля, и он недоступен по умолчанию в apache 2.4: http://httpd.apache.org/docs/2.4/mod/ - person runamok; 15.02.2017
comment
В частности, см. wiki.apache.org/tomcat/FAQ/Connectors#Q7, кто Упоминается @daniel-serodio... Где я могу скачать бинарный дистрибутив моего коннектора? Вы не можете: вам нужно скачать исходный код и скомпилировать его для вашей платформы. - person runamok; 15.02.2017
comment
Разве это не должно быть 8КБ и не 8К? - person Rui F Ribeiro; 25.07.2018
comment
В некоторых средах важно шифрование. AJP вообще не умеет шифровать, а mod_proxy умеет переключаться на https. - person Hiran Chaudhuri; 09.10.2020
comment
Этот ответ может быть устаревшим на данный момент. mod_proxy_ajp поддерживает большие размеры пакетов с использованием ProxyIOBufferSize, а возможности mod_proxy значительно улучшились за последнее десятилетие. - person Christopher Schultz; 22.01.2021

Если вы хотите остаться на земле Apache, вы также можете попробовать новый mod_proxy_ajp, который использует протокол AJP для связи с Tomcat вместо старого доброго HTTP, но который использует mod_proxy для выполнения работы.

person Vinko Vrsalovic    schedule 04.07.2009
comment
Спасибо. Но знаете ли вы, что proxy_ajp может предложить больше, чем jk? - person cherouvim; 04.07.2009
comment
Да, все элементы управления и (относительно) простота настройки mod_proxy с преимуществами скорости протокола AJP (вместо использования HTTP) - person Vinko Vrsalovic; 04.07.2009
comment
AJP использует двоичный формат, поэтому теоретически предполагается, что он обеспечивает лучшую производительность. Однако я никогда не проверял производительность прокси-серверов AJP и HTTP. - person Taylor Leese; 28.08.2009


AJP vs HTTP

При использовании mod_jk вы используете AJP. При использовании mod_proxy вы будете использовать HTTP или HTTPS. И в этом, по сути, вся разница.

The Apache JServ Protocol (AJP)

Протокол Apache JServ (AJP) — это двоичный протокол, который может проксировать входящие запросы с веб-сервера на сервер приложений, который находится за веб-сервером. AJP — это протокол с высоким уровнем доверия, и его никогда не следует предоставлять ненадежным клиентам, которые могут использовать его для получения доступа к конфиденциальной информации или выполнения кода на сервере приложений.

Pros

  • Простота настройки, так как правильная пересылка заголовков HTTP не требуется.
  • Это менее ресурсоемко, поскольку пакеты TCP пересылаются в двоичном формате вместо дорогостоящего обмена HTTP.

Cons

  • Передаваемые данные не шифруются. Его следует использовать только в доверенных сетях.

Hypertext Transfer Protocol (HTTP)

HTTP функционирует как протокол запроса-ответа в вычислительной модели клиент-сервер. Веб-браузер, например, может быть клиентом, а приложение, работающее на компьютере, на котором размещен веб-сайт, может быть сервером. Клиент отправляет сообщение HTTP-запроса на сервер. Сервер, который предоставляет такие ресурсы, как HTML-файлы и другой контент, или выполняет другие функции от имени клиента, возвращает клиенту ответное сообщение. Ответ содержит информацию о статусе завершения запроса, а также может содержать запрошенное содержимое в теле сообщения.

Pros

  • Может быть зашифрован с помощью SSL/TLS, что делает его пригодным для трафика в ненадежных сетях.
  • Он гибкий, поскольку позволяет изменять запрос перед пересылкой. Например, установка пользовательских заголовков.

Cons

  • Дополнительные накладные расходы, поскольку необходимо обеспечить правильную пересылку заголовков HTTP.
  • Более ресурсоемкий, так как запрос полностью анализируется перед пересылкой.
person The Fool    schedule 25.10.2020