Rozdiel medzi Apache a Tomcat a prečo musia spolupracovať.


Dátum vydania:1. januára 2021.



INFOMARTION > Rozdiel medzi Apache a Tomcat a prečo musia spolupracovať.

Prehľad.

Chcel by som opísať rozdiely medzi Apache a Tomcat a prečo je potrebné ich prepojiť, na čo som v začiatkoch nedokázal nájsť uspokojivú odpoveď, ani keď som sa pýtal svojich starších kolegov a pátral na internete. Niekedy sa hovorí, že Apache je webový server (vykonáva statické spracovanie) a Tomcat je kontajner servletov (vykonáva dynamické spracovanie) (ako mi povedal jeden starší kolega, keď som bol nový), ale Tomcat má aj funkcie webového servera, ak sa pozorne pozrieme. Potom by ste si mysleli, že Tomcat je všetko, čo potrebujete. To nakoniec vedie späť k otázke, prečo je potrebné prepojiť Apache a Tomcat. Pre tých, ktorí tak robia, by som rád vysvetlil rozdiely medzi Apache a Tomcat a prečo musia spolupracovať.

Obsah

  1. Dôvody prepojenia Apache a Tomcat
  2. Funkcie Apache
  3. Funkcie aplikácie Tomcat
  4. zváženie
  5. zhrnutie

1. Dôvody prepojenia Apache a Tomcat

Prvým záverom, ktorý je potrebné vyvodiť, je rozdiel v špecializácii rolí. Apache sa špecializuje na funkcie webového servera, zatiaľ čo Tomcat sa špecializuje na dynamické spracovanie pomocou jazyka Java.

Dôvodom, prečo píšeme, že existuje rozdiel v špecializácii, je to, že samotný Tomcat má aj funkcie webového servera. Možno je to trochu extrémne, ale ak existuje systém, v ktorom sú Apache a Tomcat prepojené, nie je nemožné realizovať takmer rovnaký systém s použitím iba Apache a iba Tomcat.

1-1. Aké sú rozdiely v odbornosti?

Pri posudzovaní rozdielov v špecializácii rolí sa nám zdá, že je to ťažké pochopiť, pretože sa zrazu porovnáva Apache a Tomcat. Je to jednoduchšie pochopiť, ak budete uvažovať v pojmoch serverov Tomcat a DB. Môže to znieť extrémne, ale je možné vytvoriť aplikáciu len pomocou Tomcatu bez nastavenia servera DB. Môžete napríklad spravovať informácie o používateľoch v xml alebo vlastnostiach a vytvoriť aplikáciu, ktorá overí prihlásenie na základe týchto informácií. V skutočnosti však, ak sa pozriete na všeobecné webové systémy, väčšina systémov spravuje informácie o používateľoch v DB a odkazuje údaje zo servera Tomcat do DB. Ak sa zamyslíte nad tým, prečo, je to preto, že takto môžete vyvíjať aplikácie efektívnejšie.

Niekedy ľudia vysvetľujú "výhody" a "nevýhody" spolupráce medzi Apache a Tomcat, ale toto nie je o výhodách a nevýhodách. Na otázku o "výhodách" a "nevýhodách" prepojenia serverov Tomcat a DB by odpovedali, že ich úlohy sú na začiatku odlišné. To isté platí pre Apache a Tomcat, ktoré majú na začiatku odlišné úlohy.

1-2. Čo je Apache?

Keď som už spomenul, že úlohy sú rozdielne, rád by som teraz vysvetlil, aké sú úlohy Apache a Tomcat.

Apache je opäť oficiálne známy ako Apache HTTP Server. Apache je webový server, ale jeho úlohou je v skratke analyzovať požiadavky.

Konkrétne ide o.

  • Filtrovanie (povolenie/odmietnutie požiadaviek) pre konkrétne IP adresy
  • Presmerovanie pre konkrétne adresy URL.
  • Odmietnutie konkrétnych adries URL
  • Šifrovanie komunikácie pomocou protokolu SSL
  • Prideľovanie procesov konkrétnym serverom na požiadanie

Uvedený príklad je len jeden a existuje viac funkcií, ale stručne povedané, úlohou Apache (webového servera) je spracovať požiadavky prijaté od používateľov.

Úlohou Tomcatu je rozhodnúť, aký druh odpovede má poskytnúť na základe konkrétnej požiadavky. Bod, ktorý by nemal byť nesprávne pochopený, je, že Apache nezakazuje vytváranie odpovedí. Tak ako Tomcat spolupracuje so serverom DB a udržiava jednoduché údaje (napr. zoznamy správ) na strane Tomcat, Apache nemá problém implementovať dynamické stránky, pokiaľ sú to jednoduché odpovede. Kľúčom k úspechu je to, čo sa dá zvládnuť čo najefektívnejšie a prehľadne.

1-3. Čo je Tomcat?

Oficiálny názov pre Tomcat je Apache Tomcat. Tomcat je kontajner servletov, ale aby sme v skratke vysvetlili jeho úlohu, je zodpovedný za dynamické spracovanie na základe požiadaviek.

Konkrétne ide o.

  • Registrácia údajov na základe informácií o žiadosti.
  • Vytváranie dynamických stránok a odpovedí na základe informácií o požiadavkách.
  • Určenie používateľa na základe informácií o požiadavke a vytvorenie inej odpovede pre každého používateľa.

Úlohou systému Tomcat je v podstate vrátiť používateľovi stránky, ktoré nie sú pevnými stránkami.

Toto je ďalší bod, ktorý by nemal byť nesprávne pochopený: neznamená to, že statické stránky (napr. html) by nemali byť umiestnené v Tomcate. Ak je filozofiou návrhu tímu spravovať všetko html na strane Tomcat, nie je problém umiestniť statické stránky na Tomcat. Aj v tomto prípade je kľúčové, čo sa dá zvládnuť čo najefektívnejšie a prehľadne.

2. Funkcie Apache

Rád by som predstavil niektoré funkcie Apache. Apache poskytuje množstvo modulov (súborov, v ktorých sú zabalené procesy). Načítajte modul a opíšte požadované konfiguračné hodnoty na používanie jeho funkcií. Chcel by som opísať, aké moduly sú k dispozícii.

2-1. Možnosť súbežného spracovania požiadaviek.

Príslušným modulom je modul "mpm_prefork_module". Existujú aj moduly "mpm_worker_module" a "mpm_event_module", hoci ich funkčnosť je takmer identická.

Nastavte nasledujúce hodnoty.

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

Pri takomto popise sa pri spustení servera môže spustiť "5" procesov a súčasne sa môže paralelne spracovať "5" a pri veľkom počte požiadaviek sa môže paralelne spracovať až "250".

2-2. Prepisovanie adresy URL požiadavky

Modul 'rewrite_module' je príslušný modul.

Nastavte nasledujúce hodnoty.

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

Ak je to uvedené týmto spôsobom, ak požiadavka príde na http, bude vrátená používateľovi, aby si ju znova vyžiadal na https.

2-3. Kontrola prístupu podľa adresy IP

Tento modul sa mierne líši od modulu, ale riadi prístup podľa IP adresy.

Nasledujúci popis zabráni prístupu z iných IP adries ako "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. Funkcie aplikácie Tomcat

Chcel by som vysvetliť funkčnosť Tomcatu.

3-1. Možnosť dynamického vrátenia webových stránok pomocou jazyka Java.

Odbornosť Tomcatu spočíva v jeho "schopnosti dynamicky vracať webové stránky pomocou jazyka Java". Vo všeobecnosti nevytvárate celé spracovanie jazyka Java sami, ale používate ho v spojení s knižnicami jazyka Java (moduly v Apache), ktoré vytvárajú rôzne organizácie.

  • Dynamické generovanie odpovedí na základe parametrov požiadavky používateľa.
  • Výstupné súbory denníka v určitom formáte.
  • Vytváranie a úprava súborov Excel
  • Zistite, či má súbor zip heslo.

Zložité procesy, ako sú tie, ktoré sú opísané vyššie, sa dajú dosiahnuť jednoduchým vložením knižnice a jej zavolaním. Úlohou Tomcatu je uľahčiť implementáciu týchto zložitých procesov.

4. zváženie

Vysvetlili sme, že rozdiel medzi Apache a Tomcat je v "špecializácii rolí", ale Apache (Apache HTTP Server) aj Tomcat (Apache Tomcat) sú vytvorené rovnakou nadáciou Apache Software Foundation. Dôvodom môže byť to, že Apache je napísaný v jazyku C a Tomcat v jazyku Java, čo sú rozdielne jazyky, ale dôvodom, prečo nie sú spojené do jedného, môže byť to, že plnia rozdielne úlohy."

Domovská stránka Tomcatu bola pomerne rozsiahla a dobre funguje aj ako webový server.

http://tomcat.apache.org/

  • SSL/TLS (šifrovanie komunikácie)
  • SSI (možnosť vkladať rôzne HTML do HTML)
  • Rewrite (funkcia prepisovania adresy URL)

Apache je vysoko výkonný webový server, ale je v ňom veľa funkcií, ktoré sa nepoužívajú, takže Apache Software Foundation mohla zabezpečiť, aby Tomcat mohol bežať nezávisle bez Apache. Ak však potrebujete podrobnú kontrolu požiadaviek, je stále lepšie zahrnúť Apache.

5. zhrnutie

Sú opísané rozdiely medzi Apache a Tomcat a dôvody, prečo musia spolupracovať.

Myslel som si, že odpoveď na túto otázku je ťažko pochopiteľná, pretože Tomcat je plnohodnotný webový server. Je dobré zamyslieť sa nad spoluprácou medzi Apache a Tomcat, pričom treba mať na pamäti, že funkcia Tomcat ako webového servera nie je jeho hlavnou funkciou (nie je špecializovaný ako webový server).

Ďakujeme vám za sledovanie až do konca.