Разликата между 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. Причината за това може да е, че 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 като уеб сървър не е основната му функция (той не е специализиран като уеб сървър).

Благодарим ви, че гледахте до края.