Apache Tomcat CentOS: diegimas, systemd ir saugūs numatytieji nustatymai


Paskelbimo data:

Atnaujinta:


Techniniai straipsniai > Apache Tomcat CentOS: diegimas, systemd ir saugūs numatytieji nustatymai

2026 m. būsena ir saugus naudojimas

Išvada: pirmiausia pasirinkite palaikomą „Tomcat“ leidimų šaką ir su ja suderinamą JDK. Paslaugą vykdykite atskiro, prisijungti negalinčio naudotojo teisėmis ir naudokite peržiūrėtą systemd vienetą. Konfigūraciją bei įdiegtas programas atskirkite nuo nekeičiamų dvejetainių failų, o tinkle atverkite tik būtinus jungčių prievadus.

Ką išmoksite

  • Kaip tarpusavyje siejasi „Java“ suderinamumas, diegimo šaltinis, paslaugos tapatybė, failų nuosavybė, žurnalai ir paleidimo tvarka.
  • Kodėl fiksuotos pasenusios krūvos ir GC vėliavėlės neturėtų būti kopijuojamos neatlikus matavimų.
  • Kaip atskirti originalų CentOS 7 paketo išdėstymą nuo dabartinio palaikomo diegimo.

Kam tai skirta: Linux administratoriams, prižiūrintiems arba perkeliantiems Tomcat paslaugą.

2026 m. kontekstas: toliau pateikta procedūra skirta senam „CentOS 7“ ir „Tomcat 7“ paketui. Kai kurios JVM parinktys naujesnėje „Java“ pašalintos arba nebetinkamos. „Tomcat 7“ nebepalaikomas, todėl patikrinkite oficialią versijų matricą, rinkitės palaikomą leidimų šaką ir prieš diegdami gamyboje peržiūrėkite systemd vienetą bei failų teises.

Saugos pastaba: pradiniame straipsnyje pateiktos komandos ir konfigūracijos pavyzdžiai nebuvo pakartotinai vykdomi dabartinėje gamybos aplinkoje. Prieš taikydami, patikrinkite palaikomas versijas, atsargines kopijas, prieigos valdiklius ir atšaukimo veiksmus atskiroje bandymo aplinkoje.

Pagrindiniai oficialūs šaltiniai

Apžvalga

Šiame straipsnyje aprašyta pradinė „Tomcat“ diegimo ir paleidimo procedūra „CentOS 7“ sistemoje.

Taip pat parodytas istorinis ryšio su „Apache“ pavyzdys ir žurnalų katalogo keitimas. Naujam diegimui šiuos veiksmus sutikrinkite su pasirinktos „Tomcat“ ir JDK versijos dokumentacija.

Pradiniame pavyzdyje naudotos šios versijos:

CentOS versija7.6 (1810)
"Apache" versija2.4.6
"Tomcat" versija7.0.76
„Java“ versijaOpenJDK 1.8.0_272 64 bitų

Turinys

  1. Diegimas
  2. Pagrindiniai nustatymai
  3. Santrauka

1. Diegimas

Šiame skyriuje „Tomcat“ įdiegiamas iš „CentOS 7“ paketų saugyklos.

1-1. "Tomcat" diegimas

Įdiekite „Tomcat“ naudodami yum. Komandai reikia root teisių.

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

2. Pagrindiniai nustatymai

Yum paketas sukuria /usr/share/tomcat katalogą ir nuorodas į konfigūracijos bei kitus paketui priklausančius katalogus. Prieš keisdami failus patikrinkite jų tikrąją vietą ir paketo pateikiamą systemd vienetą.

2-1. "Tomcat" kelio nustatymai

CATALINA_HOME nurodo „Tomcat“ diegimo katalogą. Paketinis diegimas dažniausiai šią reikšmę jau nustato paslaugos konfigūracijoje.

Patikrinkite /usr/share/tomcat/conf/tomcat.conf. Jei jame CATALINA_HOME jau nustatyta į /usr/share/tomcat, visos sistemos profilio keisti nereikia.

Istoriniame pavyzdyje trūkstama reikšmė įrašoma į /etc/profile. Šiuolaikiniam paslaugos diegimui geriau ją nustatyti systemd vieneto aplinkos faile, kad ji nebūtų be reikalo taikoma visiems naudotojams.

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

Failo pabaigoje buvo įrašytos šios eilutės:

profile


CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME

Po pakeitimo CATALINA_HOME rodo į „Tomcat“ diegimo katalogą.

„Tomcat“ taip pat reikia suderinamo JDK arba JRE. Jei „Java“ dar neįdiegta, žr. šį straipsnį:

OpenJDK diegimas „CentOS“ sistemoje ir numatytosios „Java“ parinkimas

Istoriniame „CentOS 7“ pavyzdyje OpenJDK 8 buvo galima įdiegti komanda yum install java-1.8.0-openjdk.

2-2. Paleidimo patikrinimas

Patikrinkite, ar „Tomcat“ paslauga paleidžiama ir priima užklausas.

„CentOS 7“ yum pakete numatytoji žiniatinklio programa pateikiama atskirame tomcat-webapps pakete, todėl ją įdiekite tik šiai istorinei patikrai. Gamyboje numatytąją programą ir administravimo programas laikykite neįdiegtas arba nepasiekiamas, jei jų nereikia.

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

Jei tikrinama iš kito kompiuterio, ugniasienėje laikinai atverkite numatytąjį 8080 prievadą. Gamyboje, kai „Tomcat“ pasiekiamas tik per atvirkštinį tarpinį serverį, šio prievado viešai neatverkite.

[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:

Jei „ports“ eilutėje rodoma 8080/tcp, ugniasienės taisyklė pritaikyta. Tada paleiskite „Tomcat“.

[root@hostname ~]# tomcat start

Pavyzdyje serverio IP adresas yra 192.168.50.10, todėl naršyklėje adresu http://192.168.50.10:8080/ atveriamas „Tomcat 7“ pradinis puslapis. Jei jis rodomas, jungtis veikia.

Tomcat 7 pradinis puslapis, pasiekiamas per 8080 prievadą

Baigę patikrą, „Tomcat“ sustabdykite.

[root@hostname ~]# tomcat stop

2-3. „Apache“ ir „Tomcat“ ryšio nustatymai

Šio žingsnio reikia tik tada, kai „Apache“ veikia prieš „Tomcat“ kaip atvirkštinis tarpinis serveris. „Tomcat“ gali HTTP užklausas aptarnauti ir savarankiškai, o „Apache“ dažniausiai pridedamas dėl TLS užbaigimo, centralizuotos prieigos kontrolės, statinių failų ar bendros tarpinio serverio architektūros.

„Apache“ diegimo ir paleidimo procedūra aprašyta atskirai:

Pradinė CentOS 7 serverio sąranka: istorinis kontrolinis sąrašas

Toliau pateiktas istorinis AJP tarpinio serverio konfigūracijos pavyzdys, kuriame „Apache“ gautos užklausos perduodamos „Tomcat“. Daroma prielaida, kad „Apache“ konfigūracija yra /etc/httpd. Šiuolaikiniame diegime AJP jungtį apribokite vietiniu ar patikimu tinklu ir sukonfigūruokite abipusiai suderintą slaptą reikšmę; kitu atveju rinkitės HTTP tarpinį serverį.

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

Istoriniame pavyzdyje į httpd.conf pabaigą įrašytas šis blokas:

httpd.conf


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

Jei toliau nurodyti moduliai dar neįjungti, prieš tęsdami įjunkite jų konfigūracijos eilutes pašalindami komentaro ženklą.

•LoadModule proxy_module modules/mod_proxy.so

•LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Patikrinę konfigūraciją, paleiskite „Apache“ (arba perkraukite, jei jis jau veikia) ir „Tomcat“.

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

Pavyzdyje serverio IP adresas yra 192.168.50.10, todėl naršyklėje adresu http://192.168.50.10/ pradedama patikra.

Jei per „Apache“ rodomas „Tomcat 7“ pradinis puslapis, tarpinio serverio ryšys veikia.

Tomcat 7 pradinis puslapis, pasiekiamas per Apache 80 prievadu

Baigę patikrą, „Tomcat“ sustabdykite.

[root@hostname ~]# tomcat stop

Pirmoje schemoje užklausa per „Apache“ perduodama „Tomcat“:

Užklausos kelias iš naršyklės per Apache į Tomcat

Ankstesnėje patikroje naršyklė prie „Tomcat“ jungėsi tiesiogiai per 8080 prievadą:

Tiesioginis užklausos kelias iš naršyklės į Tomcat 8080 prievadą

2-4. „Java“ heap ir GC žurnalų nustatymai

„Java“ heap yra objektams skirta JVM atminties sritis, o GC žurnaluose registruojamas šiukšlių surinkimas. Heap dydis ir žurnalų parinktys perduodami JVM paleidžiant „Tomcat“. Šiame paketiniame diegime jie nustatomi tomcat.conf faile.

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

Istoriniame pavyzdyje failo pabaigoje pridėta ši eilutė:

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

Paleiskite „Tomcat“ ir ps išvestyje patikrinkite, ar JVM gavo nurodytas parinktis. Nekopijuokite šių konkrečių heap, metaspace ir GC žurnalų reikšmių aklai: jos skirtos senai „Java“ versijai ir turi būti parinktos pagal realią programos apkrovą bei naudojamą JDK.

[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

-Xms256m nustato pradinį, o -Xmx256m – didžiausią heap dydį. JVM vis tiek naudoja ir ne heap atmintį, todėl bendras proceso atminties kiekis gali būti didesnis nei 256 MB.

-Xloggc parinktis šiame sename pavyzdyje nurodo GC žurnalą /var/log/tomcat/gc.log. Naujesniuose JDK naudojama vieningo žurnalų rašymo sintaksė.

Toliau paruošiamas /var/log/tomcat katalogas.

2-5. Žurnalų nustatymų keitimas

Sukurkite žurnalų katalogą ir pakeiskite „Tomcat“ žurnalų išvesties kelią. Šiame paketiniame diegime JULI žurnalai nustatomi /usr/share/tomcat/conf/logging.properties, o prieigos žurnalas – /usr/share/tomcat/conf/server.xml.

Katalogas sukuriamas taip:

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

Pavyzdyje katalogui suteikiamos 755 teisės. Rašymą iš tikrųjų lemia ir katalogo savininkas, grupė bei SELinux kontekstas, todėl jie turi atitikti „Tomcat“ paslaugos naudotoją. Kitiems naudotojams žurnalų keisti neleiskite.

Tada pakeiskite logging.properties.

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

Žurnalų katalogo reikšmes pakeiskite taip:

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.


Tada pakeiskite server.xml prieigos žurnalo nustatymą.

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

Valve elemente nurodykite žurnalų katalogą:

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

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

2-6. Automatinio paleidimo nustatymas

Kad „Tomcat“ būtų paleistas kartu su sistema, įjunkite paketo pateiktą systemd paslaugą. Toliau pateiktos komandos skirtos „CentOS 7“; kitoje sistemoje vadovaukitės jos paslaugų tvarkytuvo dokumentacija.

[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. El. pašto sesijos nustatymai

Šio nustatymo nereikia, jei „Tomcat“ programos nesiunčia el. laiškų per konteinerio JNDI pašto sesiją. Jei programa šią funkciją naudoja, suderinkite bibliotekų ir išteklių konfigūraciją su konkrečia „Tomcat“ bei Jakarta Mail arba JavaMail versija.

Istoriniame pavyzdyje į /usr/share/tomcat/lib įdedami šie JAR failai ir jiems suteikiamos tokios pačios nuosavybės bei skaitymo teisės kaip kitoms bibliotekoms:

•javax.activation-1.2.0.jar

•javax.mail.jar

Tada pakeiskite context.xml.

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

Context elemento viduje pridėkite pašto sesijos išteklių. Nerašykite antro Context elemento jau esamo failo viduje; toliau parodyta tik reikalinga struktūra.

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


3. Santrauka

Istorinėje procedūroje „Tomcat“ įdiegiamas iš yum paketo, patikrinamas jo paleidimas, parodomas ryšys su „Apache“, JVM bei žurnalų nustatymai ir systemd paslaugos įjungimas.

Naujam diegimui rinkitės palaikomą „Tomcat“ ir JDK porą, paslaugą vykdykite ribotomis teisėmis, AJP neviešinkite ir JVM atminties bei GC parinktis nustatykite pagal matavimus, o ne pagal šio seno pavyzdžio skaičius.