Apache Tomcat'i CentOS'a güvenli kurma


Yayın tarihi:

Güncelleme:


Teknik makaleler > Apache Tomcat'i CentOS'a güvenli kurma

2026 bağlamı ve güvenli kullanım

Sonuç: Önce desteklenen bir Tomcat ailesini ve uyumlu JDK'yı seçin, ardından bunu incelenen bir sistem birimi altında giriş yapmayan özel bir kullanıcı olarak çalıştırın. Yapılandırmayı ve dağıtılan uygulamaları değişmez ikili dosyalardan ayrı tutun ve yalnızca ihtiyacınız olan bağlayıcı mimariyi kullanıma açın.

Ne öğreneceksiniz

  • Java uyumluluğu, yükleme kaynağı, hizmet kimliği, dosya sahipliği, günlükler ve başlatma sırası birbirine nasıl uyuyor?
  • Sabit eski yığın ve GC bayrakları neden ölçüm yapılmadan kopyalanmamalıdır?
  • Orijinal CentOS 7 paketi düzenini mevcut desteklenen dağıtımdan nasıl ayırt edebiliriz?

Bu kimin için: Bir Tomcat hizmetini sürdüren veya taşıyan Linux yöneticileri.

2026 bağlamı: Aşağıdaki izlenecek yol, daha eski bir CentOS 7/Tomcat paketini yansıtır ve mevcut Java'da kaldırılmış veya uygunsuz olabilecek JVM seçeneklerini içerir. Tomcat 7'nin kullanım ömrü sona erdi; resmi sürüm matrisini doğrulayın, desteklenen bir şube kullanın ve üretimde kullanmadan önce tam hizmet birimini ve izinleri inceleyin.

Güvenlik notu: Orijinal makaledeki komutlar ve yapılandırma örnekleri mevcut üretim ortamında yeniden çalıştırılmamıştır. Desteklenen sürümleri, yedeklemeleri, erişim kontrollerini ve geri alma adımlarını uygulamadan önce ayrı bir test ortamında doğrulayın.

Başlıca resmî kaynaklar

Genel bakış

Bu, Tomcat'i CentOS'a yüklemek ve başlatmak için gereken ilk yapılandırma prosedürüdür. Bilgiler CentOS7 kullanıldığı varsayımına dayanmaktadır.

Lütfen Apache bağlantısı ve günlük çıktı hedefinin değiştirilmesi hakkındaki bilgilere bakın.

Versiyonlar aşağıdaki gibidir.

CentOS sürümü7.6 (1810)
Apache sürümü2.4.6
Tomcat sürümü7.0.76
Java Versiyonu.OpenJDK 1.8.0_272 64bit

İçindekiler

  1. yükleyin
  2. temel ayar
  3. özet

1. yükleyin

Bu bölümde Tomcat'in kurulumdan başlatmaya kadar olan yapılandırması açıklanmaktadır.

1-1. Tomcat'i Yükleme

Tomcat kurulumunu yum komutu ile gerçekleştirin. Çalışmayı kök kullanıcı olarak gerçekleştirin.

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

2. temel ayar

Bu bölümde Tomcat'in kurulumdan başlatmaya kadar olan yapılandırması açıklanmaktadır. "/usr/share/tomcat" daha önce açıklandığı gibi yum tarafından oluşturulur. Burada, değiştirebileceğiniz yapılandırma dosyaları vb. için klasörler gibi kısayol bağlantıları bulacaksınız.

2-1. Tomcat yol ayarları

Başka bir deyişle, Windows'ta ortam değişkenlerini ayarlama prosedürüdür.

Eğer tomcat.conf "CATALINA_HOME="/usr/share/tomcat"" ayarını içeriyorsa bu gerekli değildir. '/usr/share/tomcat/conf/tomcat.conf' dosyasını kontrol edin.

"CATALINA_HOME="/usr/share/tomcat"" eksikse, aşağıdaki prosedürü kullanarak ekleyin.

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

Sonuna aşağıdakileri ekleyin.

profile


CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME

Bu, Tomcat ortam değişkenlerinin belirtimini tamamlar.

Tomcat'i çalıştırmak için Java ayarları da gereklidir, bu nedenle Java yolu ayarları yapılmadıysa, ayarlar için lütfen aşağıdakilere bakın.

CentOS'a OpenJDK kurma ve varsayılan Java runtime'ını seçme

Ayrıca 'yum install java-1.8.0-openjdk' çalıştırılarak da kurulabilir.

2-2. bootstrap kontrolü

Tomcat'in başladığını kontrol edin.

Tomcat'i yum ile yüklerseniz, Tomcat ana sayfası için html yoktur, bu nedenle önce html'yi yükleyin.

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

Ardından güvenlik duvarını etkinleştirin. Tomcat için varsayılan bağlantı noktası numarası 8080'dir, bu nedenle 8080 bağlantı noktasını açın.

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

Eğer 'ports: 8080/tcp' yazıyorsa, sorun yok demektir. Tomcat'i başlatın.

[root@hostname ~]# tomcat start

Tarayıcı üzerinden erişilir. Benim durumumda, sunucunun IP adresi 192.168.50.10, bu yüzden "http://192.168.50.10:8080/" adresine erişiyorum. Aşağıdaki sayfa görüntülenirse sorun yoktur

Tomcat üst ekranı

Başlatma işlemi başarıyla onaylandıktan sonra Tomcat durdurulur.

[root@hostname ~]# tomcat stop

2-3. Apache ve Tomcat bağlantı ayarları Not: Apache ve Tomcat bağlandığında.

Apache HTTP Server, Tomcat'in önünde yer alacaksa bu entegrasyonu yapılandırın. Tomcat, Apache olmadan HTTP sunabilir; ancak ayrı bir ters proxy statik içeriği, TLS'i ve sistemin gerektirdiği Apache modüllerini yönetebilir.

Apache kurulum talimatları için aşağıya bakın.

Apache HTTP Server'ı CentOS'a güvenli kurma

Apache tarafındaki yapılandırmayı değiştirme prosedürü aşağıdadır. Bu, Apache'ye gelen istekleri Tomcat'e aktarmak için bir yapılandırmadır. Açıklamada '/etc/httpd/' altında bir Apache yapılandırma dosyası olduğu varsayılmaktadır.

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

"httpd.conf" dosyasının sonuna aşağıdaki ifadeyi ekleyin.

httpd.conf


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

Aşağıdaki modüller etkin değilse ilgili satırlardaki # yorum işaretini kaldırın.

• LoadModule proxy_module modules/mod_proxy.so

• LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Apache'yi (zaten başlatılmışsa yeniden başlatın) ve Tomcat'i başlatın.

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

Tarayıcı üzerinden erişilir. Benim durumumda, sunucunun IP adresi 192.168.50.10, bu yüzden "http://192.168.50.10/" adresine erişiyorum.

Aşağıdaki sayfa görüntülenirse sorun yoktur

Tomcat üst ekranı

Başlatma işlemi başarıyla onaylandıktan sonra Tomcat durdurulur.

[root@hostname ~]# tomcat stop

Diyagram aşağıdaki erişimleri göstermektedir.

Tomcat'e erişim diyagramı

Bu arada, bir önceki adıma aşağıdaki şekilde erişilmiştir.

Tomcat'e erişim diyagramı

2-4. Java yığın ve gc günlüklerinin yapılandırılması.

Java heap Java belleğidir ve gc günlükleri Java belleği ile ilgili günlüklerdir. Java, işlem için yığın olarak ayarlanmış belirli miktarda bellek kullanır. Her ikisi de Java başlatma komutunda seçenek olarak ayarlanmıştır. Bu "tomcat.conf" içinde ayarlanır.

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

Bu bölümün sonuna aşağıdaki bilgiler eklenmiştir.

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

Tomcat'i başlatın ve ayarlanan değerleri görmek için ps komutunu çalıştırın (-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails) görüntülendiğinde, tamamdır.

[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

Yukarıdaki yapılandırma Tomcat'i 256M bellek ile başlatır. 256 M'nin üzerinde, ayar bellek kullanmayacak şekilde ayarlanır.

Gc günlüğüne gelince, "/var/log/tomcat/" altında "gc.log" ile bir günlük dosyası oluşturacak şekilde ayarlanmıştır.

"/var/log/tomcat/" dizininin oluşturulması aşağıdaki adımlarda gerçekleştirilir.

2-5. Günlük ayarlarını değiştirme

Bir günlük dizini oluşturun ve Tomcat için günlük çıktı yolunu değiştirin. Günlük kaydı ile ilgili ayarlar '/usr/share/tomcat/conf/logging.properties' ve '/usr/share/tomcat/conf/server.xml' içinde bulunabilir.

Dizin oluşturma aşağıda verilmiştir.

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

Bir dizin oluşturun ve izinleri 755 olarak ayarlayın. (Tomcat günlükleri yazabilir, ancak diğer kullanıcıların yalnızca salt okuma izinleri vardır)

Ardından 'logging.properties' dosyasını değiştirin.

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

Aşağıdaki şekilde değiştirin.

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.


Ardından 'server.xml' dosyasını değiştirin.

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

Aşağıdaki şekilde değiştirin.

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

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

2-6. Otomatik başlatma ayarı

Son olarak, zorunlu olmamasına rağmen, sunucu her yeniden başlatıldığında başlatmak zordur, bu nedenle sunucu başlatıldığında Tomcat'in otomatik olarak başlaması için bir ayar konur. Lütfen bu prosedürün CentOS7 için olduğunu unutmayın, bu nedenle CentOS7'den başka bir şey kullanıyorsanız, bununla başa çıkmak için Service komutunu kullanmanız gerekecektir.

[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. Posta iletim ayarları

Tomcat'i e-posta göndermek için kullanmıyorsanız bu gereksiz bir ayardır. Java'da bir e-posta gönderme işlemi uyguluyorsanız, lütfen yapılandırmaya bakın.

Önce bir JAR ekleyin. Aşağıdaki JAR'ı tomcat lib (/usr/share/tomcat/lib/) altına yerleştirin ve izinleri diğer lib'lerle eşleştirin.

• javax.activation-1.2.0.jar

• javax.mail.jar

'context.xml' dosyasını değiştirin.

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

context.xml dosyasının sonuna aşağıdakileri ekleyin.

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


3. özet

Tomcat yüklendiğinde gereken ilk yapılandırmayı açıkladık.

Tomcat temelde varsayılan ayarlarla bir dereceye kadar çalışır, ancak gerçekten özelleştirmek istiyorsanız, daha sonra günlük çıktı hedefi ayarlarını ve otomatik başlatma komutlarını ayarlamak yararlıdır.

Umarız bu açıklama yararlı olmuştur.