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_httpalebo 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
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:
- 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.
Technické články
Profil
Kontakt