Apache HTTP Server och Tomcat: roller, omvänd proxy och samspel


Publicerad:

Uppdaterad:


Tekniska artiklar > Apache HTTP Server och Tomcat: roller, omvänd proxy och samspel

Status 2026 och säker användning

Slutsats: Apache HTTP Server är en HTTP-server och omvänd proxy, medan Tomcat är en servletcontainer med en egen HTTP-connector. De behöver inte varandra för att fungera. Kombinera dem när proxyn ger en tydlig driftfördel, exempelvis gemensam TLS, routing eller trafikstyrning.

Det här går artikeln igenom

  • Hur ansvar för HTTP, proxy, servletkörning, statiska filer, TLS och routing kan fördelas.
  • Hur mod_proxy_http eller en annan connector som stöds vidarebefordrar begäranden till Tomcat.
  • Hur ett team avgör om ett extra proxylager faktiskt behövs.

Målgrupp: Java-webbteam som väljer mellan direkt åtkomst till Tomcat och en arkitektur med hanterad omvänd proxy.

Läge 2026: Modellen med specialiserade roller är användbar, men påståendet att Apache och Tomcat alltid måste arbeta tillsammans är fel. Välj den minsta arkitektur som uppfyller kraven på säkerhet, tillgänglighet, routing, observerbarhet och drift. Dokumentera även förtroendegränser och vilka vidarebefordrade HTTP-huvuden som accepteras.

Säkerhetsinformation: Konfigurationsexemplen har inte testats på nytt i en aktuell produktionsmiljö. Kontrollera versioner, protokoll, åtkomstregler och återställning i en separat testmiljö.

Viktiga officiella källor

Översikt

Apache HTTP Server och Tomcat kan båda ta emot HTTP-begäranden, men har olika huvudroller. Tomcat kan exponeras direkt och Apache behöver inte alltid placeras framför. Artikeln förklarar ansvarsfördelningen och när en omvänd proxy ger ett verkligt mervärde.

Innehållsförteckning

  1. När bör Apache och Tomcat kombineras?
  2. Funktioner i Apache HTTP Server
  3. Tomcat-funktioner
  4. Arkitekturval
  5. Sammanfattning

1. När bör Apache och Tomcat kombineras?

Komponenterna har olika huvudroller: Apache HTTP Server hanterar generell HTTP-servering och proxyfunktioner, medan Tomcat kör Java-webbapplikationer enligt servletplattformen.

Tomcat har samtidigt en egen HTTP-connector och kan leverera statiska filer. En extra proxy är därför motiverad först när den ger en konkret funktion eller driftfördel.

1-1. Roller och ansvar

Ansvarsfördelningen kan jämföras med relationen mellan en applikationsserver och en databas. En liten applikation kan lagra viss information utan en separat databas, men en databasserver ger specialiserade funktioner för beständighet, frågor och transaktioner. På samma sätt kan Tomcat ta emot HTTP direkt, medan Apache kan tillföra centraliserad TLS, värdbaserad routing, flera backendtjänster och integration med en befintlig HTTP-miljö. Arkitekturen ska väljas utifrån kraven, inte utifrån att komponenterna alltid förväntas förekomma tillsammans.

Det är därför mer relevant att beskriva komponenternas ansvar och driftskostnad än att tala om generella för- och nackdelar med att koppla ihop dem.

1-2. Vad gör Apache HTTP Server?

Apache HTTP Server tar emot HTTP-begäranden och kan själv leverera innehåll eller vidarebefordra trafiken till andra tjänster.

Vanliga uppgifter är statisk filservering, omvänd proxy, TLS-terminering, omskrivning och åtkomstkontroll.

Exempel på funktioner:

  • Tillåta eller neka begäranden utifrån bland annat klientadress
  • Omdirigera eller skriva om vissa URL:er
  • Neka åtkomst till vissa resurser
  • Skydda kommunikationen med TLS
  • Dirigera begäranden till olika backendtjänster

Listan är inte fullständig, men visar hur Apache kan fungera som gemensam HTTP-ingång.

Apache kan också generera dynamiska svar genom andra moduler och integrationssätt. Gränsen mellan komponenterna bör bygga på förvaltningsansvar, säkerhet och observerbarhet.

1-3. Vad gör Tomcat?

Apache Tomcat är en servletcontainer för Java-webbapplikationer. Den hanterar bland annat servletlivscykel, begäranden, sessioner och applikationskontexter.

En applikation som körs i Tomcat kan exempelvis:

  • Validera en begäran och lagra data via applikationens tjänster
  • Skapa dynamiska HTTP-svar utifrån begäransdata
  • Autentisera användaren och anpassa svaret efter behörighet

Tomcats huvudroll är att köra Java-webbapplikationer och skapa deras svar.

Tomcat kan även leverera statiska HTML-, CSS- och bildfiler. Placeringen bör avgöras av applikationens paketering, cachekrav och driftmodell.

2. Funktioner i Apache HTTP Server

Apache byggs ut med moduler som aktiverar olika protokoll- och serverfunktioner. Ladda endast de moduler som miljön behöver och validera konfigurationen efter varje ändring.

2-1. Parallell behandling av begäranden

Multi-Processing Module (MPM) styr Apaches process- och trådmodell. prefork, worker och event har olika modeller och egenskaper; välj den MPM som passar modulerna och arbetslasten.

Originalartikeln visar följande inställningar för prefork.

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

StartServers anger fem initiala barnprocesser. MaxRequestWorkers begränsar antalet begäranden som kan behandlas samtidigt till 250 i den här prefork-konfigurationen, förutsatt att minne och övriga resurser räcker.

2-2. Omdirigera och skriva om URL:er

mod_rewrite kan matcha och skriva om URL:er eller returnera omdirigeringar.

Exemplet nedan omdirigerar en HTTP-begäran till HTTPS.

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

Klienten får status 301 och gör en ny begäran via HTTPS. I en publik konfiguration bör målet använda ett validerat, kanoniskt värdnamn och inte lita blint på Host-huvudet.

2-3. IP-baserad åtkomstkontroll

Apache kan begränsa åtkomst efter klientens IP-adress, men kontrollen måste ta hänsyn till betrodda proxyservrar och den verkliga klientadressen.

Det äldre syntaxexemplet nedan tillåter endast näten 1.0.16.0/20, 1.0.64.0/18 och 1.1.64.0/18. Apache 2.4 använder normalt Require-direktiv i stället.

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

Tomcat tillhandahåller körmiljön för Java-webbapplikationer.

3-1. Dynamiska Java-webbapplikationer

Tomcat kör servletbaserade applikationer som skapar dynamiska svar med Java. Applikationen kan använda externa Java-bibliotek, men dessa är applikationsberoenden och ska inte förväxlas med Apaches moduler.

  • Generera svar utifrån validerade begäransparametrar
  • Skriva applikationsloggar i ett definierat format
  • Skapa eller bearbeta kalkylbladsfiler
  • Kontrollera egenskaper hos ZIP-filer

Bibliotek kan förenkla sådana funktioner. Tomcats roll är att tillhandahålla webbapplikationens container och livscykel, medan applikationen ansvarar för sin verksamhetslogik och sina beroenden.

4. Arkitekturval

Apache HTTP Server och Apache Tomcat är separata projekt inom Apache Software Foundation. De har olika implementationer, versionscykler och huvudansvar och ska inte betraktas som två obligatoriska delar av samma produkt.

Tomcat har en fullvärdig HTTP-connector och dokumentation för funktioner som TLS, SSI och URL-omskrivning.

http://tomcat.apache.org/

  • SSL/TLS för krypterad kommunikation
  • SSI för serverinkludering i HTML
  • Rewrite Valve för omskrivning av URL:er

Kör Tomcat direkt om dess funktioner och driftmodell räcker. Lägg till Apache eller en annan omvänd proxy när centraliserad TLS, routing, gemensamma åtkomstregler eller integration med andra tjänster motiverar det extra lagret.

5. Sammanfattning

Apache HTTP Server hanterar generell HTTP-servering och proxyfunktioner; Tomcat kör Java-webbapplikationer och kan samtidigt ta emot HTTP direkt.

Komponenterna behöver inte alltid kombineras. En omvänd proxy är motiverad när den ger tydliga fördelar för TLS, routing, gemensamma regler eller drift.

Välj den enklaste arkitektur som uppfyller kraven och dokumentera connectorer, vidarebefordrade huvuden, förtroendegränser och återställning.