Зачем изобретать Tomcat, когда в Apache уже может быть JVM

Ранее я работал с веб-сервером Apache, используя PHP, Ruby и обслуживая статические страницы JavaScript / HTML.

Одна вещь, с которой я путаюсь с Tomcat, это в основном ЗАЧЕМ Tomcat существует в первую очередь, вместо использования Apache с установленной JVM? Почему из всех этих популярных языков Java нужен собственный специализированный контейнер, а именно Tomcat?

Если кто-то хочет использовать PHP для обслуживания контента, просто установите PHP на сервер Apache и вуаля, когда пользователь заходит на mysite.com/mypage.php, это происходит:

  1. Сервер Apache получает соответствующий файл mypage.php
  2. видит PHP, использует PHP-интерпретатор для обработки страницы
  3. возвращает результат

Почему это не то же самое при работе с Java?

На мой взгляд, все должно выглядеть так: просто установите Java и JVM на сервер Apache, а затем, когда пользователь перейдет на страницу mysite.com/mypage, это произойдет:

  1. Apache сервер получает соответствующий файл
  2. видит Java, использует JVM для компиляции / обработки страницы
  3. возвращает результат

Это потому, что файлы Java нужно компилировать, и не имеет смысла перекомпилировать их при каждом запросе? Тогда почему бы просто не сопоставить запрос с правильным .class файл?

Это может показаться абсурдным для тех, кто уверен в Tomcat, но, как вы видите, я, к сожалению, не понимаю.

0

Решение

Php и Java являются платформами разработки, которые могут работать независимо от Apache. Для запуска сценариев / приложений PHP сначала необходимо установить интерпретатор PHP, то же самое относится и к Java, где вам нужно будет установить JVM, которая работает в качестве интерпретатора для файлов / приложений Java.

Для запуска файлов PHP с использованием Apache вы должны включить mod_php расширение, это в основном программа, которая позволяет вызывать интерпретатор PHP из Apache и выполнять сценарии php. Платформе J2EE требуется веб-контейнер (https://docs.oracle.com/javaee/5/tutorial/doc/bnabo.html) выполнять или запускать веб-приложения. Apache может соединяться с веб-контейнером J2EE с помощью модуля, обычно вы используете AJP, чтобы позволить Apache взаимодействовать с Tomcat и выполнять страницы сервлетов Java или JSP.

Apache не требуется для запуска веб-приложений Java, однако для их запуска необходимо использовать веб-контейнер J2EE, поэтому технически Tomcat можно использовать в качестве веб-сервера, но это не рекомендуется для работы, поскольку Apache будет иметь более высокую производительность, особенно когда подача статического контента.

1

Другие решения

Tomcat — это проект Apache. Хотя теоретически возможно реализовать контейнер JSP и сервлетов (например, Tomcat) с использованием нативного кода, который не является стратегией реализации, которая была выбрана в конечном итоге (я считаю, что Websphere действительно следует этой модели реализации). Тем не менее, кот имеет Соединители и процитировать

AJP

При использовании одного сервера производительность при использовании собственного веб-сервера перед экземпляром Tomcat в большинстве случаев значительно ниже, чем у автономного Tomcat с его HTTP-коннектором по умолчанию, даже если большая часть веб-приложения состоит из статических файлов. , Если по какой-либо причине необходима интеграция с собственным веб-сервером, коннектор AJP обеспечит более высокую производительность, чем прокси-сервер HTTP. Кластеризация AJP является наиболее эффективной с точки зрения Tomcat. В остальном он функционально эквивалентен кластеризации HTTP.

Собственные соединители, поддерживаемые этим выпуском Tomcat:

JK 1.2.x with any of the supported servers
mod_proxy on Apache HTTP Server 2.x (included by default in Apache HTTP
Server 2.2), with AJP enabled
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector