Installera Apache Tomcat säkert på CentOS


Publicerad:

Uppdaterad:


Tekniska artiklar > Installera Apache Tomcat säkert på CentOS

Status 2026 och säker användning

Slutsats: Välj en Tomcat-version och JDK-kombination som stöds och kör tjänsten med ett dedikerat konto utan interaktiv inloggning. Håll binärfiler, konfiguration och driftsatta applikationer åtskilda och exponera endast de connectors som arkitekturen kräver.

Det här går artikeln igenom

  • Hur Java-kompatibilitet, installationskälla, tjänstekonto, filägarskap, loggar och startordning hänger ihop.
  • Varför äldre fasta värden för heap och GC-loggning inte ska kopieras utan mätning.
  • Hur den ursprungliga paketlayouten för CentOS 7 skiljer sig från en aktuell driftsättning som stöds.

Målgrupp: Linux-administratörer som förvaltar eller migrerar en Tomcat-tjänst.

Läge 2026: Genomgången beskriver ett äldre paket för CentOS 7 och Tomcat 7. Flera JVM-flaggor har ändrats eller tagits bort i senare Java-versioner. Kontrollera Tomcats officiella versionsmatris, välj en gren som stöds och granska systemd-enheten och filbehörigheterna före produktion.

Säkerhetsinformation: Kommandona och konfigurationsexemplen har inte testats på nytt i en aktuell produktionsmiljö. Kontrollera supportstatus, säkerhetskopior, åtkomstkontroller och återställning i en separat testmiljö innan de används.

Viktiga officiella källor

Översikt

Artikeln dokumenterar installation och grundkonfiguration av Tomcat i en äldre CentOS 7-miljö.

Den omfattar även koppling till Apache HTTP Server, JVM-inställningar och ändrade loggsökvägar.

Originalmiljön använde följande versioner.

CentOS-version7.6 (1810)
Apache-version2.4.6
Tomcat-version7.0.76
Java-versionOpenJDK 1.8.0_272 64bit

Innehållsförteckning

  1. Installation
  2. Grundkonfiguration
  3. Sammanfattning

1. Installation

Det här avsnittet beskriver paketinstallationen i originalmiljön.

1-1. Installera Tomcat

I den äldre CentOS-miljön installerades paketet tomcat med yum och root-behörighet.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install tomcat

2. Grundkonfiguration

Paketet skapar /usr/share/tomcat och länkar därifrån till bland annat konfigurationskatalogerna. Sökvägar och paketlayout kan skilja sig mellan distributioner och versioner.

2-1. Ange Tomcats sökväg

CATALINA_HOME är en miljövariabel som anger var Tomcats programfiler finns.

Ingen extra inställning behövs om tomcat.conf redan anger "CATALINA_HOME=/usr/share/tomcat". Kontrollera /usr/share/tomcat/conf/tomcat.conf.

Originalproceduren lägger annars till variabeln i /etc/profile enligt följande.

[root@hostname ~]# vi /etc/profile

Lägg till följande sist i filen.

profile


CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME

Därmed blir CATALINA_HOME tillgänglig för skal som läser /etc/profile. En systemd-tjänst kan i stället behöva motsvarande variabel i sin egen miljöfil.

Tomcat kräver även en kompatibel Java-installation. Följande artikel beskriver den äldre Java-konfigurationen.

Installera OpenJDK på CentOS och välj Java med alternatives

I originalmiljön kunde OpenJDK 8 också installeras med "yum install java-1.8.0-openjdk".

2-2. Kontrollera att Tomcat startar

Kontrollera att Tomcat startar.

I den använda paketuppdelningen ingick inte Tomcats exempelwebbapplikationer i grundpaketet. Originalproceduren installerar därför paketet tomcat-webapps för att kunna visa testsidan.

[root@hostname ~]# yum -y install tomcat-webapps

Originalproceduren öppnar därefter TCP-port 8080 i brandväggen. Exponera inte Tomcats connector publikt om tjänsten endast ska nås via en omvänd proxy.

[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports: 8080/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Kontrollera att "ports: 8080/tcp" visas om direktåtkomst verkligen behövs och starta sedan Tomcat.

[root@hostname ~]# tomcat start

Originalmiljön verifierade testsidan på "http://192.168.50.10:8080/". Begränsa kontrollen till ett betrott nätverk.

Apache Tomcats testsida

Efter startkontrollen stoppades Tomcat i originalproceduren.

[root@hostname ~]# tomcat stop

2-3. Koppla Apache till Tomcat

Det här valfria avsnittet gäller när Apache HTTP Server ska vidarebefordra trafik till Tomcat. Tomcat kan ta emot HTTP direkt, medan Apache kan fungera som en gemensam ingång för TLS, routing och andra proxyfunktioner.

Följande artikel beskriver den äldre grundkonfigurationen av CentOS-servern.

Grundkonfiguration av CentOS 7 för äldre system

Originalproceduren ändrar Apaches konfiguration under /etc/httpd så att begäranden vidarebefordras till Tomcat via AJP. I en aktuell miljö ska connectorn bindas till ett betrott gränssnitt och skyddas enligt den använda Tomcat-versionens krav.

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

Följande block lades till sist i httpd.conf.

httpd.conf


<Location / >
  ProxyPass ajp://localhost:8009/
  Order allow,deny
  Allow from all
</Location>

Följande moduler måste vara aktiva för den bevarade AJP-konfigurationen.

•LoadModule proxy_module modules/mod_proxy.so

•LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Validera Apache-konfigurationen och starta eller ladda sedan om Apache och Tomcat i kontrollerad ordning.

[root@hostname ~]# apachectl stop
[root@hostname ~]# apachectl start
[root@hostname ~]# tomcat start

Originalmiljön verifierade proxyn på "http://192.168.50.10/".

När Tomcats testsida visas via Apache fungerar den beskrivna vidarebefordringen.

Apache Tomcats testsida via Apache HTTP Server

Efter kontrollen stoppades Tomcat i originalproceduren.

[root@hostname ~]# tomcat stop

Diagrammet visar trafikflödet via Apache till Tomcat.

Trafikflöde från klienten via Apache till Tomcat

Före proxykonfigurationen gick klienten i stället direkt till Tomcats port.

Direkt trafikflöde från klienten till Tomcat

2-4. Konfigurera Java-heap och GC-loggning

Heapen är det minnesområde där JVM:en lagrar Java-objekt, och GC-loggar beskriver minnesinsamlingens arbete. Storleksgränser och loggning anges som JVM-alternativ i tomcat.conf i den här paketlayouten.

[root@hostname ~]# vi /usr/share/tomcat/conf/tomcat.conf

Originalartikeln lägger till följande CATALINA_OPTS.

CATALINA_OPTS="-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails"

Efter start visar processlistan om JVM-alternativen faktiskt används. Flera av flaggorna i exemplet är versionsberoende och måste ersättas eller tas bort på senare JDK-versioner.

[root@hostname ~]# tomcat start
[root@hostname ~]# ps aux | grep java
/usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start

Xms och Xmx sätter i exemplet både initial och maximal heap till 256 MB. Det begränsar heapen, inte JVM-processens totala minnesanvändning.

GC-loggen skrivs enligt exemplet till /var/log/tomcat/gc.log.

Katalogen /var/log/tomcat förbereds i nästa steg.

2-5. Konfigurera Tomcats loggar

Skapa loggkatalogen och ange den som destination i /usr/share/tomcat/conf/logging.properties och /usr/share/tomcat/conf/server.xml.

Originalproceduren skapar katalogen så här.

[root@hostname ~]# mkdir /var/log/tomcat
[root@hostname ~]# chmod 755 /var/log/tomcat

Behörighet 755 ger inte i sig Tomcat skrivåtkomst. Kontrollera att tjänstekontot äger den skrivbara katalogen och att grupp, SELinux-kontext och loggrotation är korrekt konfigurerade.

Redigera därefter logging.properties.

[root@hostname ~]# vi /usr/share/tomcat/conf/logging.properties

Ange /var/log/tomcat för de berörda filhanterarna.

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = /var/log/tomcat
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = /var/log/tomcat
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = /var/log/tomcat
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = /var/log/tomcat
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.


Redigera sedan server.xml.

[root@hostname ~]# vi /usr/share/tomcat/conf/server.xml

Ange samma katalog för AccessLogValve.

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat"

prefix="localhost_access" suffix=".txt"
pattern="combined" />

2-6. Automatisk start

Aktivera Tomcats systemd-enhet om tjänsten ska starta automatiskt med servern. Enhetens namn och hantering beror på den aktuella distributionen och installationsmetoden.

[root@hostname ~]# systemctl enable tomcat
[root@hostname ~]# systemctl is-enabled tomcat
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep tomcat
tomcat.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-7. Konfigurera e-postresurs

Det här valfria steget gäller en Java-applikation som hämtar en e-postsession via Tomcats JNDI-konfiguration.

Originalproceduren placerar följande JAR-filer i /usr/share/tomcat/lib och ger dem samma ägare och behörigheter som övriga bibliotek. Kontrollera aktuella artefakter, licenser och versionskompatibilitet innan filer kopieras manuellt.

•javax.activation-1.2.0.jar

•javax.mail.jar

Redigera därefter context.xml.

[root@hostname ~]# vi /usr/share/tomcat/conf/context.xml

Originalartikeln lägger till följande resurs i context.xml.

<Context>
    <Resource name="mail/Session" auth="Container"
              type="javax.mail.Session"
              />
</Context>


3. Sammanfattning

Den historiska proceduren installerar Tomcat, verifierar port 8080, kopplar Apache via AJP och konfigurerar JVM-alternativ, loggar, automatisk start och en valfri e-postresurs.

På en aktuell plattform ska versioner, connectorer, tjänstekonto, filägarskap och JVM-flaggor granskas som en sammanhållen driftkonfiguration.

Exponera endast nödvändiga portar och testa start, loggning och återställning innan tjänsten tas i produktion.