Apache HTTP Server vs Tomcat: úlohy, reverzné proxy a kedy ich kombinovať


Dátum vydania:

Aktualizované:


Technické články > Apache HTTP Server vs Tomcat: úlohy, reverzné proxy a kedy ich kombinovať

Stav a bezpečné používanie v roku 2026

Záver: Apache HTTP Server je univerzálny webový a reverzný proxy server; Tomcat je kontajner webových aplikácií v Jave s vlastným konektorom HTTP. Môžu fungovať samostatne. Kombinujte ich iba vtedy, keď proxy prináša konkrétnu výhodu, napríklad centralizované TLS, smerovanie alebo spoločnú vstupnú vrstvu.

Čo sa naučíte

  • Ktorý produkt môže obsluhovať HTTP, fungovať ako proxy, spúšťať servlety, doručovať statické súbory a zabezpečovať TLS či smerovanie.
  • Ako mod_proxy_http alebo iný podporovaný konektor preposiela požiadavky Tomcatu.
  • Ako sa vyhnúť pridávaniu proxy vrstvy len preto, že starší diagram ju vždy obsahoval.

Pre koho je to určené: Tímy vyvíjajúce webové aplikácie v Jave, ktoré sa rozhodujú medzi priamym prístupom k Tomcatu a architektúrou so spravovanou reverznou proxy.

Kontext v roku 2026: Rozdelenie úloh medzi produkty je užitočný model, tvrdenie „Apache a Tomcat musia spolupracovať“ je však príliš absolútne. Zvoľte najjednoduchšiu architektúru, ktorá spĺňa požiadavky na bezpečnosť, spoľahlivosť, smerovanie, pozorovateľnosť a prevádzku. Zdokumentujte hranice dôvery aj preposielané hlavičky.

Bezpečnostná poznámka: Príkazy a príklady konfigurácie v pôvodnom článku neboli znovu spustené v aktuálnom produkčnom prostredí. Pred ich použitím overte podporované verzie, zálohy, prístupové oprávnenia a postup obnovy v oddelenom testovacom prostredí.

Hlavné oficiálne zdroje

Prehľad

Apache HTTP Server a Tomcat sa v niektorých funkciách prekrývajú, preto nemusí byť dôvod na použitie oboch produktov zrejmý. Článok porovnáva ich hlavné úlohy a vysvetľuje, kedy má zmysel konektor alebo reverzná proxy.

Obsah

  1. Kedy použiť Apache HTTP Server s Tomcatom
  2. Funkcie Apache HTTP Servera
  3. Funkcie Tomcatu
  4. Architektonické hľadiská
  5. Zhrnutie

1. Kedy použiť Apache HTTP Server s Tomcatom

Produkty majú odlišné hlavné zodpovednosti. Apache HTTP Server obsluhuje obsah cez HTTP a môže fungovať ako reverzná proxy, zatiaľ čo Tomcat spúšťa aplikácie založené na servletoch a JSP. Nasadenie môže použiť ktorýkoľvek produkt samostatne alebo ich skombinovať, ak samostatná vrstva proxy prináša jasnú výhodu.

Tomcat obsahuje vlastný konektor HTTP, takže Apache HTTP Server nie je podmienkou. Bežnými dôvodmi na jeho umiestnenie pred Tomcat sú centralizované TLS, smerovanie virtuálnych hostiteľov, riadenie prístupu, doručovanie statických súborov alebo integrácia s existujúcou webovou vrstvou.

1-1. Rozdelenie zodpovedností

Užitočným prirovnaním je aplikačný a databázový server. Aplikácia môže malé množstvo údajov uložiť do súborov, databáza sa však používa vtedy, keď sú prínosné jej možnosti dotazovania, konzistencie a správy. Podobne môže Tomcat obsluhovať HTTP priamo. Samostatný HTTP server je opodstatnený, keď jeho proxy a vstupné funkcie zjednodušia prevádzku.

Ide o architektonické rozhodnutie, nie o univerzálny zoznam výhod a nevýhod. Pred pridaním ďalšej vrstvy vyhodnoťte potrebné funkcie, možné zlyhania, náklady na údržbu a hranice dôvery.

1-2. Úloha Apache HTTP Servera

Apache HTTP Server prijíma požiadavky HTTP a buď odpovie priamo, alebo ich odovzdá inej službe.

Pomocou modulov poskytuje webové, proxy, smerovacie a bezpečnostné funkcie.

Patrí medzi ne napríklad:

  • povolenie alebo odmietnutie požiadaviek podľa adresy či iných vlastností;
  • presmerovanie alebo prepísanie vybraných adries URL;
  • ukončenie spojenia TLS;
  • doručovanie statického obsahu; a
  • smerovanie alebo odovzdávanie požiadaviek aplikačným serverom.

Apache HTTP Server dokáže prostredníctvom vhodných modulov a aplikácií vytvárať aj dynamické odpovede.

Hranica medzi produktmi má vychádzať z prevádzkových požiadaviek, nie z absolútneho pravidla, že jeden musí obsluhovať iba statický a druhý iba dynamický obsah. Vyberte rozdelenie, ktoré zostane jednoduché, bezpečné a udržiavateľné.

1-3. Úloha Tomcatu

Apache Tomcat je kontajner servletov a webový server pre Javu. Prijme požiadavku, spustí priradenú webovú aplikáciu a vráti jej odpoveď.

Typická aplikačná práca zahŕňa:

  • overenie údajov z požiadavky a uloženie záznamov aplikácie;
  • vytváranie dynamických stránok alebo odpovedí API; a
  • overenie používateľa a uplatnenie správania určeného pre daný účet.

Tomcat teda poskytuje behové prostredie pre webovú aplikáciu v Jave a zároveň dokáže obsluhovať HTTP.

Môže doručovať aj statické súbory. Pri malom nasadení môže byť ich ponechanie v aplikácii najjednoduchším riešením; presun do samostatnej webovej vrstvy alebo CDN má riešiť konkrétnu, nameranú prevádzkovú potrebu.

2. Funkcie Apache HTTP Servera

Apache sprístupňuje mnohé funkcie prostredníctvom modulov. Po načítaní a nakonfigurovaní modulu možno jeho funkciu používať. Nasledujú príklady súvisiace s touto architektúrou.

2-1. Súbežné spracovanie požiadaviek

Apache používa modul viacnásobného spracovania (MPM), napríklad "mpm_prefork_module", "mpm_worker_module" alebo "mpm_event_module". Jednotlivé MPM používajú odlišný model procesov a vlákien a nie sú zameniteľné v každom nasadení.

Nasledujúci historický príklad prefork nastavuje limity fondu procesov.

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

Hodnota "StartServers 5" vytvorí pri štarte päť dcérskych procesov a "MaxRequestWorkers 250" nastaví hornú hranicu súbežných požiadaviek. Ostatné direktívy riadia nečinné procesy a ich recykláciu; vhodné hodnoty overte podľa pamäte servera a skutočného zaťaženia.

2-2. Prepisovanie adries URL

Modul "rewrite_module" dokáže adresy URL prepisovať alebo presmerovať.

Nasledujúci príklad presmeruje požiadavku HTTP na zodpovedajúcu adresu HTTPS.

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

Server vráti trvalé presmerovanie a klient následne odošle novú požiadavku cez HTTPS. Pred použitím za ďalšou proxy overte preposielané hlavičky a informáciu o pôvodnej schéme.

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

Prístup možno obmedziť podľa zdrojovej IP adresy alebo rozsahu.

Nasledujúca historická konfigurácia povoľuje iba siete "1.0.16.0/20", "1.0.64.0/18" a "1.1.64.0/18". Direktívy "Order", "Deny" a "Allow" používajú kompatibilnú syntax Apache 2.2; v novej konfigurácii Apache 2.4 sa zvyčajne používa "Require ip".

<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 Tomcatu

Tomcat spúšťa webové aplikácie v Jave a sprístupňuje ich cez HTTP alebo konektor k proxy.

3-1. Dynamické odpovede v Jave

Nasadená aplikácia môže pomocou knižníc Javy implementovať napríklad tieto úlohy:

  • vytváranie odpovedí z overených parametrov požiadavky;
  • zápis štruktúrovaných aplikačných protokolov;
  • vytváranie alebo úpravu tabuľkových súborov; a
  • kontrolu metadát archívov.

Tieto knižnice sú závislosti aplikácie, nie moduly Apache HTTP Servera. Tomcat poskytuje kontajner servletov a integráciu s behovým prostredím, v ktorom ich aplikácia používa.

4. Architektonické hľadiská

Apache HTTP Server a Apache Tomcat sú samostatné projekty nadácie Apache Software Foundation. Hoci oba komunikujú cez HTTP, majú odlišné behové prostredia, cykly vydávania, konfiguračné modely a hlavné oblasti použitia.

Tomcat obsahuje aj vlastné funkcie webového servera, napríklad:

http://tomcat.apache.org/

  • konektory TLS;
  • Server-Side Includes (SSI); a
  • prepisovanie adries URL.

Priame sprístupnenie Tomcatu preto môže byť vhodné. Apache HTTP Server pridajte iba vtedy, keď jeho samostatné proxy, smerovacie, bezpečnostné alebo prevádzkové funkcie odôvodnia ďalší komponent.

5. Zhrnutie

Tomcat dokáže obsluhovať webovú aplikáciu v Jave bez Apache HTTP Servera.

Oba produkty používajte spolu vtedy, keď samostatná webová a reverzná proxy vrstva prináša konkrétny prínos vyplývajúci z požiadaviek. Ak taký prínos neexistuje, ponechajte jednoduchšiu architektúru s priamym prístupom k Tomcatu.

Bez ohľadu na voľbu zdokumentujte konektory, hranice dôvery, preposielané hlavičky, TLS a zodpovednosť za protokoly aj obnovu.