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 versija7.6 (1810)
Apache versija2.4.6
Tomcat versija7.0.76
Java versijaOpenJDK 1.8.0_272 64bit

Satura rādītājs

  1. Instalēšana
  2. Vēsturiskā Tomcat konfigurācija
  3. Kopsavilkums

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.

profile


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.

Tomcat sākumlapa pēc sekmīgas palaišanas

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.

httpd.conf


<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.

Tomcat sākumlapa, kas atvērta caur Apache starpniekserveri

Pēc sekmīgas pārbaudes Tomcat tika apturēts.

[root@hostname ~]# tomcat stop

Pirmajā diagrammā parādīta piekļuve Tomcat caur Apache.

Pieprasījuma ceļš no klienta caur Apache uz Tomcat

Otrajā diagrammā salīdzinājumam parādīta iepriekšējā tiešā piekļuve Tomcat portam.

Tieša klienta piekļuve Tomcat savienotājam

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.