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

Bu yazımda SSL li NGİNX sunucusu üzerine gelen istekleri Tomcat (SSL siz)sunucusuna nasıl network trafiğini göndereceğimizi inceleceğiz.

Ubuntu 18 üzerinde Nginx ve Tomcat 9 yükledikten sonraki aşamayı anlatacağım.

İnternet ortamında güvenlik katmanları artığından https ile sunucuya erişimler artık mecburi oldu.

Http erişimlerinin sunucular arasında https(ssl) üzerinden olması ve port bilgisinin link üzerine verilmesinin güvenlik açığı kabul edildiğinden iki sunucu arasında resimdeki gibi bir network trafiği sağlamalıyız. Hadi başlayalım!

Amacımız Tomcat sunucusundaki swagger linkine nginx üzerinden https ile erişmek.

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

bu şekilde erişim sağlayacağız.

Direk tomcat sunucusuna erişim sağladığımzda güvenlik açığı olarak hata alırız.

https://latestsoftwaredevelopers.com/8080/swagger-ui.html

şeklinde erişim olursa güvenlik hatası alırız.

Adım 1: Nginx sunucusunun ayarlarını yapalım.

Ubuntu sunucumuzda nginx conf dosyamızı açıyoruz.

cd etc/nginx/sites-enabled

nano default

nginx dosyamıza tomcat yönlendirmesi için gerekli satırları yazıyoruz.

Upstream tomcat,

location api

nginx.conf

upstream tomcat {

server 127.0.0.1:8888 fail_timeout=0;

}

server {

listen 80;

listen 443 ssl;

ssl_certificate ...crt;

ssl_certificate_key ...key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

root /var/www/html;

index index.html;

server_name a.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 sunucusunu stop start ediyoruz.

nginx -t

systemctl restart nginx

Adım 2:Tomcat Sunucu Ayarları

sunucuda tomcat klasöründe server.xml sınıfını açıyoruz.

Cd home/tomcat/conf

nano server.xml

İçerisinde proxyname proxyport adres bilgilerini nginx ile aynı olucak şekilde değiştiriyorum.

<Connector port="8888" protocol="HTTP/1.1" address="127.0.0.1"

connectionTimeout="20000"

proxyName="a.com"

proxyPort="80" />

sunucuyu stop start etmem gerekli.
 

Bin klasörü içinden

shutdown.sh 

startup.sh

 komutlarını çalıştırıyoruz.

Proxyport, proxyname,address bilgileri doğru olmalıdır.

Adım3:Erişim Kontrolu Testi

https://latestsoftwaredevelopers.com/api/aaaa/swagger.html

ya da post isteği atılarak veri geldiği kontrol edilebilir.

 

SSL li NGİNX sunucusu üzerine gelen istekleri Tomcat sunucusuna nasıl yöndedirdiğimizden bahsettim.Umarım faydalı yazı olmuştur.

İyi çalışmalar.Hoşçakalın.

Bu ve benzeri yazılarımızı internet sitemizden okuyabilirsiniz.

iyi çalışmalar.

https://latestsoftwaredevelopers.hashnode.dev/

https://medium.com/@latestsoftwaredevelopers

https://latestsoftwaredevelopers.com

 

referanslar

https://webapp.org.ua/sysadmin/setting-up-nginx-ssl-reverse-proxy-for-tomcat/

https://help.clouding.io/hc/en-us/articles/360010691359-How-to-Install-Tomcat-with-Nginx-as-a-Reverse-Proxy-on-Ubuntu-18-04

Beğendiysen bir çay ısmarlayabilirsin ☕

Bana çay ısmarla

Devops ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *