Rozdíl mezi aplikacemi Apache a Tomcat a důvody jejich vzájemné spolupráce.


Datum vydání:1. ledna 2021.



INFOMARTION > Rozdíl mezi aplikacemi Apache a Tomcat a důvody jejich vzájemné spolupráce.

Přehled.

Rád bych popsal rozdíly mezi Apachem a Tomcatem a proč je třeba je propojit, na což jsem v začátcích nenašel uspokojivou odpověď, ani když jsem se ptal svých starších kolegů a pátral na internetu. Někdy se říká, že Apache je webový server (provádí statické zpracování) a Tomcat je servletový kontejner (provádí dynamické zpracování) (jak mi řekl jeden starší kolega, když jsem začínal), ale Tomcat má také funkce webového serveru, pokud se pozorně podíváme. Pak byste si mohli myslet, že Tomcat je vše, co potřebujete. To nakonec vede zpět k otázce, proč je třeba propojit Apache a Tomcat. Těm, kteří tak činí, bych rád vysvětlil rozdíly mezi Apachem a Tomcatem a důvody jejich vzájemné spolupráce.

Obsah

  1. Důvody pro propojení aplikací Apache a Tomcat
  2. Funkce Apache
  3. Funkce aplikace Tomcat
  4. zvážení
  5. shrnutí

1. Důvody pro propojení aplikací Apache a Tomcat

Prvním závěrem, který je třeba učinit, je rozdíl ve specializaci rolí. Apache se specializuje na funkce webového serveru, zatímco Tomcat se specializuje na dynamické zpracování pomocí jazyka Java.

Důvodem pro napsání rozdílu ve specializaci je skutečnost, že samotný Tomcat má také funkce webového serveru. To je možná trochu extrémní, ale pokud existuje systém, ve kterém jsou propojeny Apache a Tomcat, není nemožné realizovat téměř stejný systém pouze pomocí Apache a pouze Tomcatu.

1-1. Jaké jsou rozdíly v odbornosti?

Při posuzování rozdílů ve specializaci rolí se domníváme, že je to obtížné pochopit, protože se najednou srovnává Apache a Tomcat. Snadněji to pochopíte, pokud budete uvažovat v termínech serverů Tomcat a DB. Může to znít extrémně, ale je možné vytvořit aplikaci pouze pomocí Tomcatu bez nastavení DB serveru. Můžete například spravovat informace o uživateli ve formátu xml nebo property a vytvořit aplikaci, která na základě těchto informací ověří přihlášení. Pokud se však podíváte na obecné webové systémy, ve skutečnosti většina systémů spravuje informace o uživatelích v DB a odkazuje data ze serveru Tomcat do DB. Když se zamyslíte nad tím, proč tomu tak je, zjistíte, že tímto způsobem můžete vyvíjet aplikace efektivněji.

Někdy se vysvětlují "výhody" a "nevýhody" spolupráce Apache a Tomcatu, ale tady nejde o výhody a nevýhody. Na otázku ohledně "výhod" a "nevýhod" propojení serverů Tomcat a DB by odpověděli, že jejich role se od počátku liší. Totéž platí pro Apache a Tomcat, které mají na začátku odlišné role.

1-2. Co je Apache?

Když už jsem zmínil, že se role liší, rád bych nyní vysvětlil, jaké jsou role Apache a Tomcatu.

Opět platí, že Apache je oficiálně známý jako Apache HTTP Server. Apache je webový server, ale jeho úkolem je analyzovat požadavky.

Konkrétně se jedná o.

  • Filtrování (povolení/odmítnutí požadavků) pro konkrétní IP adresy
  • Přesměrování pro konkrétní adresy URL.
  • Odmítnutí konkrétních adres URL
  • Šifrování komunikace pomocí SSL
  • Přidělování procesů konkrétním serverům na vyžádání

Výše uvedený příklad je jen jeden a existuje více funkcí, ale stručně řečeno, úlohou Apache (webového serveru) je zpracovávat požadavky přijaté od uživatelů.

Úkolem serveru Tomcat je rozhodnout, jaký druh odpovědi má být proveden na základě konkrétního požadavku. Nemělo by být špatně pochopeno, že Apache nezakazuje vytváření odpovědí. Stejně jako Tomcat spolupracuje s DB serverem a udržuje jednoduchá data (např. seznamy zpráv) na straně Tomcatu, Apache nemá problém s implementací dynamických stránek, pokud se jedná o jednoduché odpovědi. Klíčové je, co lze zvládnout co nejefektivněji a přehledně.

1-3. Co je Tomcat?

Oficiální název pro Tomcat je "Apache Tomcat". Tomcat je kontejner servletů, ale abychom jeho úlohu vysvětlili ve zkratce, je zodpovědný za dynamické zpracování na základě požadavků.

Konkrétně se jedná o.

  • Registrujte údaje na základě informací v žádosti.
  • Vytváření dynamických stránek a odpovědí na základě informací o požadavku.
  • Určete uživatele na základě informací o požadavku a vytvořte pro každého uživatele jinou odpověď.

Úkolem systému Tomcat je v podstatě vracet uživateli stránky, které nejsou pevnými stránkami.

To je další bod, který by neměl být špatně pochopen: neznamená to, že by statické stránky (např. html) neměly být umístěny v Tomcatu. Pokud je filozofií návrhu týmu spravovat veškeré html na straně Tomcatu, není problém umístit statické stránky na Tomcat. I v tomto případě je klíčové, co lze zvládnout co nejefektivněji a nejpřehledněji.

2. Funkce Apache

Rád bych vám představil některé funkce systému Apache. Apache poskytuje řadu modulů (souborů, v nichž jsou zabaleny procesy). Načtěte modul a popište požadované konfigurační hodnoty pro použití jeho funkcí. Rád bych popsal, jaké moduly jsou k dispozici.

2-1. Možnost souběžného zpracování požadavků.

Příslušným modulem je modul "mpm_prefork_module". Existují také moduly "mpm_worker_module" a "mpm_event_module", ačkoli jejich funkce jsou téměř totožné.

Nastavte následující hodnoty.

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

Je-li server popsán tímto způsobem, může být při spuštění spuštěno "5" procesů a současně může být paralelně zpracováváno "5" a při velkém počtu požadavků může být paralelně zpracováváno až "250".

2-2. Přepsání adresy URL požadavku

Příslušným modulem je modul 'rewrite_module'.

Nastavte následující hodnoty.

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

Pokud je to takto uvedeno, bude v případě, že požadavek přijde na http, vrácen uživateli, aby si jej znovu vyžádal na https.

2-3. Řízení přístupu podle IP adresy

Tento modul se mírně liší od modulu, ale řídí přístup podle IP adresy.

Následující popis zabrání přístupu z jiných IP adres než "1.0.16.0/20", "1.0.64.0/18" a "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. Funkce aplikace Tomcat

Rád bych vysvětlil funkčnost Tomcatu.

3-1. Možnost dynamického vracení webových stránek pomocí Javy.

Odbornost Tomcatu spočívá v jeho "schopnosti dynamicky vracet webové stránky pomocí jazyka Java". Obecně platí, že veškeré zpracování v jazyce Java nevytváříte sami, ale používáte je ve spojení s knihovnami jazyka Java (moduly v jazyce Apache), které vytvářejí různé organizace.

  • Dynamické generování odpovědí na základě parametrů požadavku uživatele.
  • Výstup souborů protokolu v určitém formátu.
  • Vytváření a úprava souborů aplikace Excel
  • Zjistěte, zda má soubor zip heslo.

Složitých procesů, jako je výše uvedený, lze dosáhnout jednoduše vložením knihovny a jejím voláním. Úkolem Tomcatu je usnadnit implementaci těchto složitých procesů.

4. zvážení

Vysvětlili jsme, že rozdíl mezi Apachem a Tomcatem spočívá ve "specializaci rolí", ale jak Apache (Apache HTTP Server), tak Tomcat (Apache Tomcat) jsou vytvořeny stejnou organizací Apache Software Foundation. Důvodem může být to, že Apache je napsán v jazyce C a Tomcat v Javě, což jsou různé jazyky, ale důvodem, proč nejsou spojeny do jednoho, může být to, že hrají různé role."

Domovská stránka Tomcatu byla poměrně rozsáhlá a dobře funguje i jako webový server.

http://tomcat.apache.org/

  • SSL/TLS (šifrování komunikace)
  • SSI (možnost vkládat různé HTML do HTML)
  • Rewrite (funkce pro přepisování adres URL)

Apache je vysoce výkonný webový server, ale je v něm mnoho funkcí, které se nepoužívají, takže Apache Software Foundation mohla zajistit, aby Tomcat mohl běžet samostatně bez Apache. Pokud však potřebujete podrobnou kontrolu požadavků, je stále lepší zahrnout Apache.

5. shrnutí

Jsou popsány rozdíly mezi Apachem a Tomcatem a důvody jejich vzájemné spolupráce.

Myslel jsem, že odpověď na tuto otázku je obtížně pochopitelná, protože Tomcat je plnohodnotný webový server. Je dobré se zamyslet nad spoluprací Apache a Tomcatu a mít na paměti, že funkce Tomcatu jako webového serveru není jeho hlavní funkcí (není specializovaný jako webový server).

Děkujeme, že jste se dívali až do konce.




■INFORMATION

Kliknutím sem přejdete na horní stránku s informacemi.


■PROFILE

Kliknutím sem získáte profil.


■Kontaktní údaje.

V případě dotazů k článku nás prosím kontaktujte zde.