Разница между Apache и Tomcat и почему они должны работать вместе.


Дата публикации:1 января 2021 года.



INFOMARTION > Разница между Apache и Tomcat и почему они должны работать вместе.

Обзор.

Я хотел бы описать различия между Apache и Tomcat и почему они должны быть связаны, на что я не смог найти удовлетворительного ответа, когда был новичком, даже после расспросов моих старших коллег и исследований в интернете. Иногда говорят, что Apache - это веб-сервер (выполняет статическую обработку), а Tomcat - контейнер сервлетов (выполняет динамическую обработку) (так мне сказал старший коллега, когда я был новичком), но Tomcat также имеет функции веб-сервера, если внимательно присмотреться. Тогда вы можете подумать, что Tomcat - это все, что вам нужно. В итоге это возвращает нас к вопросу о том, почему Apache и Tomcat должны быть связаны вместе. Для тех, кто знает, я хотел бы объяснить различия между Apache и Tomcat и почему они должны работать вместе.

Оглавление

  1. Зачем связывать Apache и Tomcat?
  2. Особенности Apache
  3. Особенности Tomcat
  4. рассмотрение
  5. резюме

1. Зачем связывать Apache и Tomcat?

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

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

1-1. Каковы различия в экспертизе?

При рассмотрении различий в ролевой специализации нам кажется, что это трудно понять, потому что сравнение внезапно проводится между Apache и Tomcat. Это легче понять, если мыслить в терминах Tomcat и DB-серверов. Это может показаться крайностью, но можно создать приложение, используя только Tomcat, без установки сервера БД. Например, вы можете управлять информацией о пользователе в xml или свойстве и создать приложение, которое аутентифицирует вход в систему на основе этой информации. Однако в действительности, если вы посмотрите на общие веб-системы, большинство систем управляют информацией о пользователях в БД и направляют данные из Tomcat на сервер БД. Если подумать, почему, то это потому, что таким образом можно более эффективно разрабатывать приложения.

Иногда люди объясняют "преимущества" и "недостатки" сотрудничества между Apache и Tomcat, но речь идет не о преимуществах и недостатках. Когда их спрашивают о "преимуществах" и "недостатках" соединения Tomcat и DB-серверов, они отвечают, что роли изначально разные. То же самое относится к Apache и Tomcat, у которых изначально разные роли.

1-2. Что такое Apache?

Упомянув о том, что роли различны, я хотел бы теперь объяснить, каковы роли Apache и Tomcat.

Еще раз напомним, что Apache официально известен как Apache HTTP Server. Apache - это веб-сервер, но в двух словах его роль заключается в анализе запросов.

В частности, это.

  • Фильтр (разрешение/запрет запросов) для определенных IP-адресов
  • Перенаправление для определенных URL-адресов.
  • Отклонение определенных URL-адресов
  • Шифрование коммуникаций с помощью SSL
  • Выделение процессов определенным серверам по запросу

Выше приведен лишь один пример, функций гораздо больше, но вкратце роль Apache (веб-сервера) заключается в обработке запросов, поступающих от пользователей.

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

1-3. Что такое Tomcat?

Официальное название Tomcat - "Apache Tomcat". Tomcat - это контейнер сервлетов, но если объяснить его роль в двух словах, то он отвечает за динамическую обработку на основе запросов.

В частности, это.

  • Регистрация данных на основе информации запроса.
  • Создавайте динамические страницы и ответы на основе информации о запросе.
  • Определите пользователя на основе информации о запросе и создайте отдельный ответ для каждого пользователя.

По сути, работа Tomcat заключается в том, чтобы возвращать пользователю страницы, которые не являются фиксированными страницами.

Это еще один момент, который не следует понимать неправильно: это не означает, что статические страницы (например, html) не должны размещаться в Tomcat. Если философия команды заключается в том, чтобы управлять всем html на стороне Tomcat, то нет никаких проблем с размещением статических страниц на Tomcat. И в этом случае ключевым моментом является то, с чем можно справиться наиболее эффективно и аккуратно.

2. Особенности Apache

Я хотел бы представить некоторые особенности Apache. Apache предоставляет ряд модулей (файлы, в которые упаковываются процессы). Загрузите модуль и опишите необходимые значения конфигурации для использования его функций. Я хотел бы описать, какие модули доступны.

2-1. Возможность одновременной обработки запросов.

Модуль "mpm_prefork_module" является соответствующим модулем. Существуют также "mpm_worker_module" и "mpm_event_module", хотя их функциональность практически идентична.

Установите следующие значения.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

При таком описании при запуске сервера может быть запущено "5" процессов и параллельно обрабатываться "5" одновременно, а при поступлении большого количества запросов параллельно может обрабатываться до "250".

2-2. Переписывание URL-адреса запроса

Модуль 'rewrite_module' является соответствующим модулем.

Установите следующие значения.

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Если это сформулировать таким образом, то если запрос приходит по http, он будет возвращен пользователю для повторного запроса по https.

2-3. Контроль доступа по IP-адресу

Этот модуль немного отличается от модуля, но он контролирует доступ по IP-адресу.

Следующее описание предотвратит доступ с IP-адресов, отличных от "1.0.16.0/20", "1.0.64.0/18" и "1.1.64.0/18".

<Directory />
    order deny,allow
    deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
</Directory>

3. Особенности Tomcat

Я хотел бы объяснить функциональность Tomcat.

3-1. Возможность динамического возврата веб-страниц с помощью Java.

Особенность Tomcat заключается в его "способности динамически возвращать веб-страницы с помощью Java". Как правило, вы не создаете всю обработку Java самостоятельно, а используете ее в сочетании с библиотеками Java (модули в Apache), которые создаются различными организациями.

  • Динамически генерировать ответы на основе параметров запроса пользователя.
  • Вывод файлов журнала в определенном формате.
  • Создание и редактирование файлов Excel
  • Определите, есть ли у zip-файла пароль.

Сложные процессы, такие как описанные выше, могут быть достигнуты просто путем вставки библиотеки и вызова библиотеки. Роль Tomcat заключается в том, чтобы облегчить реализацию этих сложных процессов.

4. рассмотрение

Мы уже объясняли, что разница между Apache и Tomcat заключается в "ролевой специализации", но и Apache (Apache HTTP Server), и Tomcat (Apache Tomcat) созданы одним и тем же Apache Software Foundation. Причина может быть в том, что Apache написан на C, а Tomcat на Java, а это разные языки, но причина, почему они не объединены в один, может быть в том, что они играют разные роли".

Домашняя страница Tomcat была довольно обширной, и он также хорошо функционирует как веб-сервер.

http://tomcat.apache.org/

  • SSL/TLS (шифрование коммуникаций)
  • SSI (возможность встраивать различные HTML в HTML)
  • Rewrite (функция переписывания URL)

Apache - это высокопроизводительный веб-сервер, но в нем есть много функций, которые не используются, поэтому Apache Software Foundation, возможно, сделал так, что Tomcat может работать независимо без Apache. Однако все же лучше включить Apache, если вам нужен детальный контроль запросов.

5. резюме

Описаны различия между Apache и Tomcat и то, почему они должны работать вместе.

Я думал, что ответ на этот вопрос трудно понять, потому что Tomcat - это полнофункциональный веб-сервер. Хорошо подумать о сотрудничестве между Apache и Tomcat, помня о том, что функция Tomcat как веб-сервера не является его основной функцией (он не специализируется как веб-сервер).

Спасибо, что досмотрели до конца.