Apache Tomcat uz CentOS: instalēšana, systemd un drošie noklusējumi
Publikācijas datums:
Atjaunināts:
Tehniskie raksti > Apache Tomcat uz CentOS: instalēšana, systemd un drošie noklusējumi
2026. gada statuss un droša lietošana
Galvenais: vispirms izvēlieties atbalstītu Tomcat laidienu un saderīgu JDK, pēc tam palaidiet pakalpojumu ar tam paredzētu kontu bez interaktīvas pieteikšanās un pārskatītu systemd vienību. Konfigurāciju un izvietotās lietojumprogrammas glabājiet atsevišķi no nemaināmajiem binārajiem failiem un atveriet tikai vajadzīgos savienotājus.
Ko jūs uzzināsiet
- Kā sader kopā Java saderība, instalācijas avots, pakalpojuma identitāte, failu īpašumtiesības, žurnāli un startēšanas secība.
- Kāpēc fiksētās mantotās kaudzes un GC karogus nevajadzētu kopēt bez mērījumiem.
- Kā atšķirt sākotnējo CentOS 7 pakotnes izkārtojumu no pašreizējās atbalstītās izvietošanas.
Kam tas paredzēts: Linux administratoriem, kuri uztur vai migrē Tomcat pakalpojumu.
2026. gada konteksts: tālāk sniegtā pamācība atspoguļo vecāku CentOS 7 un Tomcat pakotni un ietver JVM opcijas, kas mūsdienu Java versijā var būt noņemtas vai nepiemērotas. Tomcat 7 atbalsts ir beidzies; pārbaudiet oficiālo versiju matricu, izmantojiet atbalstītu zaru un pirms ieviešanas ražošanā pārskatiet tieši izmantoto pakalpojuma vienību un atļaujas.
Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.
Galvenie oficiālie avoti
Pārskats
Šajā vēsturiskajā pamācībā aprakstīta Tomcat instalēšana un palaišana CentOS 7 vidē.
Tajā fiksēta arī Apache reversā starpniekservera konfigurācija un pielāgots žurnālu direktorijs. Abi risinājumi jāpārskata atbilstoši atbalstītajam Tomcat laidienam un pašreizējai operētājsistēmas pakotnei.
Pārbaudītās versijas bija šādas.
| CentOS versija | 7.6 (1810) |
|---|---|
| Apache versija | 2.4.6 |
| Tomcat versija | 7.0.76 |
| Java versija | OpenJDK 1.8.0_272 64bit |
Satura rādītājs
1. Instalēšana
Šajā sadaļā saglabāta vēsturiskā Tomcat pakotnes instalēšanas darbība.
1-1. Tomcat instalēšana
Sākotnējā CentOS 7 vidē Tomcat tika instalēts ar yum, izmantojot root privilēģijas.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install tomcat
2. Vēsturiskā Tomcat konfigurācija
Yum pakotne sākotnējā vidē izveidoja direktoriju "/usr/share/tomcat" un saites uz konfigurācijas failiem. Tālākās vēsturiskās darbības pieņem šo pakotnes izkārtojumu.
2-1. Tomcat ceļa iestatījumi
Tā ir čaulas vides mainīgo konfigurācija, kas aptuveni atbilst vides mainīgo iestatīšanai Windows sistēmā. Pakalpojuma pārvaldnieks ne vienmēr pārmanto lietotāja čaulas profilu, tāpēc pakalpojuma mainīgie jādefinē pakotnes vienības atbalstītajā vietā.
Šī darbība nav vajadzīga, ja fails '/usr/share/tomcat/conf/tomcat.conf' jau satur iestatījumu "CATALINA_HOME="/usr/share/tomcat"".
Ja šāda iestatījuma nav, vēsturiskajā procedūrā to pievienoja tālāk norādītajā veidā.
[root@hostname ~]# vi /etc/profile
Faila beigās tika pievienota tālāk redzamā rinda.
CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME
Tomcat vajadzīga arī saderīga Java izpildvide. Saistītajā OpenJDK rakstā aprakstīta vēsturiskā alternatives konfigurācija; mūsdienu instalācijā izmantojiet JDK un pakalpojuma vidi, ko atbalsta izvēlētais Tomcat laidiens.
OpenJDK instalēšana CentOS un noklusējuma Java izpildvides izvēle
Sākotnējā vidē Java varēja instalēt arī ar 'yum install java-1.8.0-openjdk'.
2-2. Palaišanas pārbaude
Pārbaudiet, vai Tomcat pakalpojums tiek palaists.
Vēsturiskajā CentOS pakotņu dalījumā noklusējuma Tomcat sākumlapa bija atsevišķā pakotnē tomcat-webapps. Ražošanas serverim šī demonstrācijas lietojumprogramma nav vajadzīga, un administrēšanas vai parauga lietotnes nevajadzētu atklāt bez nepieciešamības.
[root@hostname ~]# yum -y install tomcat-webapps
Tālāk vēsturiskajā piemērā ugunsmūrī tika atvērts Tomcat noklusējuma ports 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:
Portam 8080/tcp jābūt atvērtam tikai tad, ja tieša piekļuve Tomcat savienotājam patiešām nepieciešama. Ja Apache vai cits reversais starpniekserveris darbojas tajā pašā serverī, drošāk var būt piesaistīt Tomcat privātai saskarnei un ārēji portu neatvērt.
[root@hostname ~]# tomcat start
Sākotnējā laboratorijas vidē pārlūkprogrammā tika atvērts http://192.168.50.10:8080/. Paredzētās lapas saņemšana apstiprināja pamata savienojumu.
Pēc sekmīgas pārbaudes Tomcat tika apturēts.
[root@hostname ~]# tomcat stop
2-3. Apache un Tomcat sasaistes iestatījumi
Šī sadaļa nav obligāta. Tomcat var apkalpot HTTP pats; pievienojiet Apache HTTP Server tikai tad, ja tā TLS, maršrutēšana, piekļuves kontrole vai kopīgais ārējais slānis dod konkrētu ieguvumu. Neuzskatiet, ka reversais starpniekserveris automātiski paātrinās statisko saturu.
Saistītajā rakstā saglabāta atbilstošā vēsturiskā Apache instalācija.
CentOS 7 sākotnējā servera iestatīšana: vēsturisks kontrolsaraksts mūsdienu Linux videi
Tālāk redzamā vēsturiskā Apache konfigurācija pārsūta atbilstošos pieprasījumus Tomcat. Piemērā Apache konfigurācija atrodas direktorijā '/etc/httpd/'.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Faila "httpd.conf" beigās tika pievienots tālāk redzamais fragments.
<Location / >
ProxyPass ajp://localhost:8009/
Order allow,deny
Allow from all
</Location>
Ja tālāk norādītie moduļi vēl nav iespējoti, vēsturiskajā konfigurācijā no to rindām tika noņemta komentāra zīme.
• LoadModule proxy_module modules/mod_proxy.so
• LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
Pēc tam tika palaists Apache un Tomcat.
[root@hostname ~]# apachectl stop
[root@hostname ~]# apachectl start
[root@hostname ~]# tomcat start
Sākotnējā laboratorijas vidē pārlūkprogrammā tika atvērts http://192.168.50.10/.
Ja paredzētā lapa tiek saņemta caur Apache, pamata starpniekservera ceļš darbojas. Papildus pārbaudiet pārsūtīto shēmas un resursdatora informāciju, kļūdu apstrādi, taimautus un to, ka Tomcat savienotājs nav pieejams ārpus paredzētās uzticamības robežas.
Pēc sekmīgas pārbaudes Tomcat tika apturēts.
[root@hostname ~]# tomcat stop
Pirmajā diagrammā parādīta piekļuve Tomcat caur Apache.
Otrajā diagrammā salīdzinājumam parādīta iepriekšējā tiešā piekļuve Tomcat portam.
2-4. Java kaudzes un GC žurnālu iestatījumi
JVM kaudzē tiek glabāti Java objekti, bet GC žurnāls reģistrē atkritumu savākšanas darbību. Kaudzes lielums un žurnālu opcijas tiek nodotas Java palaišanas komandai; vēsturiskajā piemērā tās tika ierakstītas failā "tomcat.conf".
[root@hostname ~]# vi /usr/share/tomcat/conf/tomcat.conf
Faila beigās tika pievienotas tālāk redzamās opcijas.
CATALINA_OPTS="-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails"
Pēc Tomcat palaišanas procesa saraksts tika izmantots tikai tam, lai pārbaudītu, vai norādītās JVM opcijas tiešām piemērotas. Šīs vēsturiskās opcijas nav mūsdienu regulēšanas ieteikums; jaunākās Java versijās vairākas GC žurnālu opcijas ir mainītas.
[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
Opcijas -Xms256m un -Xmx256m fiksē sākotnējo un maksimālo JVM kaudzes apjomu 256 MB, savukārt metaspace ierobežo atsevišķas opcijas. Tas nenozīmē, ka viss Tomcat process izmantos tikai 256 MB.
GC žurnāls vēsturiskajā konfigurācijā tika rakstīts failā "gc.log" direktorijā "/var/log/tomcat/". Tālāk aprakstīta šā direktorija sagatavošana.
2-5. Žurnālu iestatījumu maiņa
Izveidojiet žurnāla direktoriju un mainiet Tomcat žurnāla izejas ceļu. Ar reģistrēšanu saistītos iestatījumus var atrast failos '/usr/share/tomcat/conf/logging.properties' un '/usr/share/tomcat/conf/server.xml'.
Vēsturiskajā piemērā direktorijs tika izveidots šādi.
[root@hostname ~]# mkdir /var/log/tomcat
[root@hostname ~]# chmod 755 /var/log/tomcat
Režīms 755 pats par sevi nepiešķir Tomcat rakstīšanas tiesības. Pārbaudiet īpašnieku, grupu, vecākdirektoriju atļaujas un SELinux kontekstu un neļaujiet neuzticamiem lietotājiem mainīt žurnālus.
Pēc tam modificējiet "logging.properties".
[root@hostname ~]# vi /usr/share/tomcat/conf/logging.properties
Vēsturiskajā konfigurācijā tika veiktas tālāk redzamās izmaiņas.
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.
Pēc tam tika modificēts "server.xml".
[root@hostname ~]# vi /usr/share/tomcat/conf/server.xml
Piekļuves žurnāla direktorijs tika mainīts šādi.
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat"
prefix="localhost_access" suffix=".txt"
pattern="combined" />
2-6. Automātiska palaišana
Palaišanu sistēmas startēšanas laikā parasti pārvalda pakotnes systemd vienība. Pirms tās iespējošanas pārskatiet pakalpojuma lietotāju, failu piekļuvi, vides mainīgos un atkarības.
[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. E-pasta sūtīšanas iestatījumi
Šī pasta sesijas konfigurācija vajadzīga tikai tad, ja izvietotā lietojumprogramma izmanto attiecīgo JNDI resursu. Akreditācijas datus glabājiet aizsargātā noslēpumu avotā un ievērojiet pasta pakalpojuma pašreizējās TLS prasības.
Vēsturiskajā piemērā Tomcat bibliotēku direktorijā (/usr/share/tomcat/lib/) tika ievietoti tālāk norādītie JAR faili un tiem pielāgotas atļaujas.
•javax.activation-1.2.0.jar
•javax.mail.jar
Pēc tam tika modificēts 'context.xml'.
[root@hostname ~]# vi /usr/share/tomcat/conf/context.xml
Faila context.xml beigās tika pievienots tālāk redzamais resurss.
<Context>
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
/>
</Context>
3. Kopsavilkums
Sākotnējā pamācība aptver pakotnes instalēšanu, Java izvēli, savienotāja piekļuvi, Apache starpniekserveri, JVM opcijas, žurnālus un pakalpojuma palaišanu.
Mūsdienu izvietojumā izvēlieties savstarpēji saderīgu un atbalstītu Tomcat un JDK pāri, izmantojiet atsevišķu pakalpojuma kontu un pakotnes systemd vienību, atveriet tikai vajadzīgos savienotājus un pārbaudiet konfigurāciju un atcelšanas procedūru.



