Apache Tomcat pe CentOS: instalare, systemd și setări implicite sigure


Data publicării:

Actualizat:


Articole tehnice > Apache Tomcat pe CentOS: instalare, systemd și setări implicite sigure

Contextul din 2026 și utilizarea în siguranță

Concluzie: alegeți mai întâi o familie Tomcat acceptată și un JDK compatibil, apoi rulați-l ca utilizator dedicat fără autentificare sub o unitate de sistem revizuită. Păstrați configurația și aplicațiile implementate separate de binarele imuabile și expuneți doar arhitectura conectorului de care aveți nevoie.

Ce vei învăța

  • Cum se potrivesc compatibilitatea Java, sursa de instalare, identitatea serviciului, proprietatea fișierelor, jurnalele și ordinea de pornire.
  • De ce heapul moștenit fix și semnalizatoarele GC nu ar trebui copiate fără măsurători.
  • Cum să distingem aspectul original al pachetului CentOS 7 de o implementare actuală acceptată.

Cui se adresează: administratorii Linux care întrețin sau migrează un serviciu Tomcat.

Contextul din 2026: explicația de mai jos reflectă un pachet CentOS 7/Tomcat mai vechi și include opțiuni JVM care pot fi eliminate sau neadecvate pe Java actual. Tomcat 7 este la sfârșitul vieții; verificați matricea versiunii oficiale, utilizați o ramură acceptată și examinați unitatea de service exactă și permisiunile înainte de utilizarea în producție.

Notă de siguranță: comenzile și exemplele de configurare din articolul original nu au fost reluate într-un mediu de producție actual. Verificați versiunile acceptate, copiile de rezervă, controalele de acces și pașii de retragere într-un mediu de testare separat înainte de a le aplica.

Surse oficiale principale

Prezentare generală

Aceasta este procedura de configurare inițială necesară pentru a instala și a porni Tomcat pe CentOS. Informațiile se bazează pe ipoteza că se utilizează CentOS7.

Vă rugăm să consultați informațiile privind legătura Apache și modificarea destinației de ieșire a jurnalului.

Versiunile sunt următoarele.

Versiunea CentOS7.6 (1810)
Versiunea Apache2.4.6
Versiunea Tomcat7.0.76
Versiunea Java.OpenJDK 1.8.0_272 64bit

Cuprins

  1. instalați
  2. setarea de bază
  3. rezumat

1. instalați

Această secțiune descrie configurarea lui Tomcat de la instalare până la pornire.

1-1. Instalarea Tomcat

Efectuați instalarea Tomcat prin intermediul comenzii yum. Efectuați lucrările ca utilizator root.

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

2. setarea de bază

Această secțiune descrie configurarea lui Tomcat de la instalare până la pornire. "/usr/share/tomcat" este creat de yum, așa cum a fost descris mai devreme. Aici veți găsi legături rapide, cum ar fi dosare pentru fișiere de configurare etc., pe care le puteți modifica.

2-1. Setări pentru calea Tomcat

Cu alte cuvinte, în Windows, este procedura de setare a variabilelor de mediu.

Acest lucru nu este necesar în cazul în care tomcat.conf conține setarea "CATALINA_HOME="/usr/share/tomcat"". Verificați '/usr/share/tomcat/conf/tomcat.conf'.

Dacă lipsește "CATALINA_HOME="/usr/share/tomcat"", adăugați-l folosind următoarea procedură.

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

Adăugați următorul text la sfârșit.

profile


CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME

Astfel se încheie specificarea variabilelor de mediu Tomcat.

De asemenea, sunt necesare setările Java pentru a rula Tomcat, astfel încât, dacă nu au fost efectuate setările pentru calea Java, vă rugăm să consultați următoarele setări.

Instalați Java pe CentOS și setați căile de acces

De asemenea, poate fi instalat prin rularea "yum install java-1.8.0-openjdk".

2-2. verificarea bootstrap

Verificați dacă Tomcat pornește.

Dacă instalați Tomcat cu yum, nu există html pentru pagina de start a Tomcat, deci instalați mai întâi html-ul.

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

Apoi activați firewall-ul. Numărul de port implicit pentru Tomcat este 8080, așa că deschideți portul 8080.

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

Dacă scrie "ports: 8080/tcp", este în regulă. Porniți Tomcat.

[root@hostname ~]# tomcat start

Accesat prin browser. În cazul meu, adresa IP a serverului este 192.168.50.10, așa că am accesat "http://192.168.50.10:8080/". Este în regulă dacă apare următoarea pagină

Ecranul de sus Tomcat

Întrucât pornirea a fost confirmată cu succes, Tomcat este oprit.

[root@hostname ~]# tomcat stop

2-3. Setări de conectare Apache și Tomcat Notă: Atunci când Apache și Tomcat sunt conectate.

Configurați această integrare atunci când Apache HTTP Server este plasat în fața Tomcat. Tomcat poate servi HTTP fără Apache, însă un proxy invers separat poate gestiona conținutul static, TLS și modulele Apache necesare sistemului.

Consultați mai jos instrucțiunile de instalare Apache.

Configurația inițială necesară de la instalarea Apache pe CentOS până la pornire.

Mai jos este prezentată procedura de modificare a configurației pe partea Apache. Aceasta este o configurație pentru trecerea cererilor care vin de la Apache la Tomcat. Descrierea presupune că există un fișier de configurare Apache în '/etc/httpd/'.

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

Adăugați următoarea declarație la sfârșitul fișierului "httpd.conf".

httpd.conf


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

Dacă modulele următoare nu sunt active, eliminați marcajul de comentariu # de pe liniile corespunzătoare.

• LoadModule proxy_module modules/mod_proxy.so

• LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Porniți Apache (reporniți dacă este deja pornit) și Tomcat.

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

Accesat prin browser. În cazul meu, adresa IP a serverului este 192.168.50.10, așa că am accesat "http://192.168.50.10/".

Este în regulă dacă apare următoarea pagină

Ecranul de sus Tomcat

Întrucât pornirea a fost confirmată cu succes, Tomcat este oprit.

[root@hostname ~]# tomcat stop

Diagrama prezintă următoarele accesări.

Diagrama de acces la Tomcat

De altfel, singurul pas anterior a fost accesat după cum urmează.

Diagrama de acces la Tomcat

2-4. Configurarea jurnalelor java heap și gc.

Java heap este memoria Java, iar jurnalele gc sunt jurnale despre memoria Java. Java utilizează pentru procesare o anumită cantitate de memorie configurată ca un heap. Ambele sunt setate ca opțiuni în comanda de pornire Java. Acest lucru este setat în "tomcat.conf".

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

La sfârșitul acestei secțiuni se adaugă următoarele informații.

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

Porniți Tomcat și rulați comanda ps pentru a vedea valorile setate (-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails) este afișat, este OK.

[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

Configurația de mai sus pornește Tomcat cu 256M de memorie. Peste 256 M, setarea este setată pentru a nu utiliza memorie.

În ceea ce privește jurnalul gc, acesta este configurat pentru a crea un fișier jurnal în "/var/log/tomcat/" cu numele "gc.log".

Crearea directorului "/var/log/tomcat/" se realizează în următorii pași.

2-5. Modificarea setărilor de jurnalizare

Creați un director de jurnal și modificați calea de ieșire a jurnalului pentru Tomcat. Setările legate de logare pot fi găsite în "/usr/share/tomcat/conf/logging.properties" și "/usr/share/tomcat/conf/server.xml".

Mai jos este crearea directorului.

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

Creați un director și setați permisiunile la 755. (Tomcat poate scrie jurnale, dar alți utilizatori au doar permisiuni de citire)

Apoi modificați 'logging.properties'.

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

Se modifică după cum urmează.

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.


Apoi modificați "server.xml".

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

Se modifică după cum urmează.

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

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

2-6. Setare pentru pornire automată

În cele din urmă, deși nu este obligatoriu, este dificil să porniți serverul de fiecare dată când acesta este repornit, așa că este introdusă o setare astfel încât Tomcat să pornească automat atunci când serverul este pornit. Vă rugăm să rețineți că această procedură este pentru CentOS7, așa că, dacă folosiți altceva decât CentOS7, va trebui să folosiți comanda Service pentru a rezolva această problemă.

[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. Setări de transmitere a corespondenței

Aceasta este o setare inutilă dacă nu utilizați Tomcat pentru a trimite e-mailuri. Dacă implementați un proces de trimitere de e-mailuri în Java, vă rugăm să consultați configurația.

Mai întâi, adăugați un fișier JAR. Așezați următorul JAR în librăria tomcat (/usr/share/tomcat/lib/) și potriviți permisiunile cu cele ale celorlalte librării.

• javax.activation-1.2.0.jar

• javax.mail.jar

Modificați "context.xml".

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

Adăugați următoarele la sfârșitul context.xml.

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


3. rezumat

Am descris configurația inițială necesară atunci când Tomcat este instalat.

În principiu, Tomcat funcționează într-o oarecare măsură cu setările implicite, dar dacă doriți să îl personalizați, este utilă mai târziu pentru a seta setările destinației de ieșire a jurnalului și comenzile de pornire automată.

Sperăm că explicația v-a fost utilă.