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 CentOS | 7.6 (1810) |
|---|---|
| Versiunea Apache | 2.4.6 |
| Versiunea Tomcat | 7.0.76 |
| Versiunea Java. | OpenJDK 1.8.0_272 64bit |
Cuprins
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.
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ă
Î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".
<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ă
Întrucât pornirea a fost confirmată cu succes, Tomcat este oprit.
[root@hostname ~]# tomcat stop
Diagrama prezintă următoarele accesări.
De altfel, singurul pas anterior a fost accesat după cum urmează.
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ă.



