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
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.
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
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.
<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
Başlatma işlemi başarıyla onaylandıktan sonra Tomcat durdurulur.
[root@hostname ~]# tomcat stop
Diyagram aşağıdaki erişimleri göstermektedir.
Bu arada, bir önceki adıma aşağıdaki şekilde erişilmiştir.
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.



