Nginx SSL ile Tomcat Sunucusuna Erişim sağlama (Reverse Proxy)

Nginx SSL Reverse Proxy ile Tomcat Yönlendirme (Adım Adım Rehber)

Bu yazıda Nginx SSL reverse proxy kullanarak gelen HTTPS isteklerinin Tomcat sunucusuna yönlendirilmesi işlemini adım adım inceleyeceğiz.

Günümüzde güvenlik gereksinimleri nedeniyle web uygulamalarına erişimlerin HTTPS (SSL) üzerinden yapılması zorunlu hale gelmiştir.

Bu nedenle dış dünyaya açık olan Nginx sunucusu üzerinde SSL yapılandırması yaparak, gelen istekleri iç ağda çalışan SSL’siz Tomcat sunucusuna yönlendirmek en doğru mimaridir.

Mimari Yapı

Amaç: HTTPS isteklerini Nginx üzerinden alıp Tomcat’e iletmek.

  • Kullanıcı → HTTPS → Nginx
  • Nginx → HTTP → Tomcat

Böylece hem güvenlik sağlanır hem de port bilgisi gizlenmiş olur.

Hedef URL

Swagger arayüzüne şu şekilde erişeceğiz:

https://domain.com/api/swagger-ui.html

Direkt Tomcat portu ile erişim (:8080) güvenlik açığı oluşturur ve önerilmez.

Adım 1: Nginx Konfigürasyonu

Nginx konfigürasyon dosyasını açın:


cd /etc/nginx/sites-enabled
nano default
      

Tomcat için upstream ve proxy ayarlarını ekleyin:


upstream tomcat {
    server 127.0.0.1:8888 fail_timeout=0;
}

server {
    listen 80;
    listen 443 ssl;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    ssl_protocols TLSv1.2 TLSv1.3;

    server_name domain.com;

    location /api/ {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://tomcat/;
    }
}
      

Nginx’i yeniden başlatın:


nginx -t
systemctl restart nginx
      

Adım 2: Tomcat Konfigürasyonu

Tomcat server.xml dosyasını açın:


cd /home/tomcat/conf
nano server.xml
      

Connector ayarını aşağıdaki gibi düzenleyin:


<Connector port="8888"
           protocol="HTTP/1.1"
           address="127.0.0.1"
           connectionTimeout="20000"
           proxyName="domain.com"
           proxyPort="443" />
      

Tomcat’i yeniden başlatın:


./shutdown.sh
./startup.sh
      

Adım 3: Test ve Doğrulama

Aşağıdaki URL üzerinden erişimi test edin:


https://domain.com/api/swagger-ui.html
      

Eğer yapılandırma doğruysa Swagger arayüzü sorunsuz şekilde açılacaktır.

Önemli Notlar

  • Tomcat dış dünyaya kapalı olmalıdır (localhost üzerinden çalışmalı)
  • SSL sadece Nginx üzerinde aktif olmalıdır
  • proxyName ve proxyPort doğru ayarlanmalıdır
  • Firewall ayarları kontrol edilmelidir

Sık Sorulan Sorular (FAQ)

Neden Nginx reverse proxy kullanılır?

Güvenlik, performans ve merkezi SSL yönetimi için kullanılır.

Tomcat üzerinde SSL kurmak yerine neden Nginx kullanılır?

Nginx daha performanslıdır ve SSL yönetimini kolaylaştırır.

HTTP → HTTPS yönlendirme gerekli mi?

Evet, tüm trafik HTTPS’e yönlendirilmelidir.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

Devops ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *