Apache Tomcat Kurulum ve Yönetim Rehberi (Bölüm 1-4)
✅ 1. Apache Tomcat Nedir?
Apache Tomcat, Java Servlet, JSP (Java Server Pages) ve diğer Java web teknolojilerini çalıştıran açık kaynak kodlu bir web sunucusu ve servlet container’dır. Genellikle orta ölçekli web uygulamaları için tercih edilir.
📦 2. Tomcat Kurulumu
🔹 Sistem Gereksinimleri
- Java JDK 8 veya üzeri (Java 11 önerilir)
- 512 MB RAM (minimum), 1 GB+ önerilir
- Açık port (varsayılan 8080)
🔸 Linux (Ubuntu) Kurulumu
Adım 1: Java Yükle
sudo apt update
sudo apt install openjdk-11-jdk -y
Adım 2: Tomcat Kullanıcısı Oluştur
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Adım 3: Tomcat İndir ve Kur
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.24/bin/apache-tomcat-10.1.24.tar.gz
sudo mkdir -p /opt/tomcat
sudo tar -xzvf apache-tomcat-10.1.24.tar.gz -C /opt/tomcat –strip-components=1
Adım 4: Yetkilendirme
sudo chown -R tomcat: /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh
Adım 5: Systemd Servis Oluştur
/etc/systemd/system/tomcat.service
[Unit]Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=”JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64″
Environment=”CATALINA_PID=/opt/tomcat/temp/tomcat.pid”
Environment=”CATALINA_HOME=/opt/tomcat”
Environment=”CATALINA_BASE=/opt/tomcat”
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Adım 6: Başlat
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable –now tomcat
🔸 Windows Kurulumu
- Java JDK kur (JAVA_HOME tanımla)
- Tomcat zip ya da exe kurulum dosyasını indir
- Zip ile kurulum: startup.bat
- Exe ile kurulum: “Tomcat as Service” olarak kur
⚙️ 3. Yapılandırma
📁 Temel Dosyalar:
| Dosya | Açıklama |
| server.xml | Port, connector, host ayarları |
| context.xml | Veri kaynağı gibi uygulama özel ayarları |
| web.xml | Varsayılan servlet ayarları, MIME types |
| tomcat-users.xml | Kullanıcı/rol tanımı |
server.xml Örnek Ayarlar
<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
<Host name=”myapp.local” appBase=”webapps”>
<Alias>www.myapp.local</Alias>
<Context path=”” docBase=”/var/www/myapp” />
</Host>
tomcat-users.xml Kullanıcı Tanımı
<tomcat-users>
<role rolename=”manager-gui”/>
<role rolename=”admin-gui”/>
<user username=”admin” password=”StrongPass123″ roles=”manager-gui,admin-gui”/>
</tomcat-users>
context.xml Veri Kaynağı
<Resource name=”jdbc/mydb” auth=”Container”
type=”javax.sql.DataSource” driverClassName=”com.mysql.cj.jdbc.Driver”
url=”jdbc:mysql://localhost:3306/test”
username=”tomcat” password=”tomcat” />
🔒 4. Güvenlik
🔐 Erişim Sınırlandırması
<Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127\..*|::1″ />
🔐 HTTPS Yapılandırması
keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks -validity 365
<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11NioProtocol” SSLEnabled=”true”>
<SSLHostConfig>
<Certificate certificateKeystoreFile=”/opt/tomcat/keystore.jks”
type=”RSA” certificateKeystorePassword=”sifre123″/>
</SSLHostConfig>
</Connector>
🔐 Dosya İzinleri
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R o-rwx /opt/tomcat
🔐 Version Gizleme
- web.xml içinde server parametresi
- index.jsp içinde banner kaldırma
🚀 5. Uygulama Yükleme (Deployment)
🔸 webapps/ dizinine kopyala
sudo cp myapp.war /opt/tomcat/webapps/
🔸 Manager GUI ile Yükleme
http://localhost:8080/manager/html
- Kullanıcı: admin / StrongPass123
- WAR dosyasını seç, context path belirle, yükle
🔸 Hot Deployment
sudo rm /opt/tomcat/webapps/myapp*
sudo cp newapp.war /opt/tomcat/webapps/myapp.war
🔸 Uygulama Logları
tail -f /opt/tomcat/logs/catalina.out

