Bizimle iletişime geçin

info@serverion.com

Bizi arayın

+1 (302) 380 3902

Güvenli Bir Nginx Ters Proxy Oluşturmaya Yönelik Tam Kılavuz

Güvenli Bir Nginx Ters Proxy Oluşturmaya Yönelik Tam Kılavuz

Güvenli, güvenilir ve ölçeklenebilir bir ters proxy oluşturmak, yoğun trafikli web sitelerini veya karmaşık uygulamaları yöneten işletmeler ve BT uzmanları için hayati önem taşır. Açık kaynaklı bir web sunucusu ve ters proxy olan Nginx, arka uç hizmetlerinize gelen trafiği yönlendirmek, optimize etmek ve güvenliğini sağlamak için güçlü bir çözümdür. Bu kılavuzda, TLS şifreleme, hız sınırlama ve Cloudflare ile entegrasyon gibi kritik adımları ele alarak Ubuntu 24.04 üzerinde Nginx kullanarak güçlü bir ters proxy kurma sürecini adım adım ele alacağız.

Kurumsal düzeyde web siteleri, e-ticaret platformları veya medya sunucuları yönetiyorsanız, bu kılavuz performansı artırmanıza, çalışma süresini garantilemenize ve altyapınızı güvenlik açıklarından korumanıza yardımcı olacaktır.

Nginx Ters Proxy Nedir?

Nginx ters proxy, istemciler ve arka uç hizmetleri arasında aracı bir sunucu görevi görür. İstemci isteklerini uygun arka uç sunucusuna ileterek yük dağılımını optimize eder, güvenliği artırır ve önbelleğe alma, SSL sonlandırma ve trafik filtreleme gibi özellikleri etkinleştirir. Bu kurulum, özellikle medya sunucularını, çok siteli uygulamaları ve güvenlik duvarlarının arkasındaki hizmetleri barındırmak için kullanışlıdır.

Neden Ters Proxy'ye İhtiyacınız Var?

Ters proxy'nin birkaç önemli avantajı vardır:

  • Gelişmiş Güvenlik: Arka uç sunucularının IP'lerini gizler ve TLS/SSL aracılığıyla şifrelemeyi etkinleştirir.
  • Yük Dengeleme: Trafiği birden fazla arka uç sunucusuna eşit şekilde dağıtır.
  • Optimizasyon: Gecikmeyi azaltır ve kaynak verimliliğini artırır.
  • Ölçeklenebilirlik: Yüksek trafikli senaryoların yönetimini kolaylaştırır.
  • Yönetim Kolaylığı:Birleşik bir etki alanının arkasındaki birden fazla arka uç hizmetinin yapılandırmasını basitleştirir.

Bu eğitimde şunları nasıl yapacağınızı göstereceğiz:

  • Nginx'i ters proxy olarak kurun.
  • Kurulumunuzu Let's Encrypt TLS sertifikalarıyla güvence altına alın.
  • Hız sınırlama ve istek yönlendirme gibi gelişmiş optimizasyonları yapılandırın.
  • İSS port kısıtlamalarını aşmak için Cloudflare'i entegre edin.

Adım 1: Ubuntu 24.04'e Nginx ve Certbot Kurulumu

Sisteminizi Güncelleyin

Herhangi bir yazılımı yüklemeden önce sisteminizin güncel olduğundan emin olun:

sudo apt update ve sudo apt upgrade 

Nginx ve Certbot'u yükleyin

Nginx eklentisiyle Nginx ve Certbot'u kurmak için aşağıdaki komutları kullanın:

sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y 

Kurulumu Doğrula

Nginx'in çalıştığını doğrulayın:

sudo systemctl status nginx 

Erişimi test etmek için sunucunuzun IP adresini belirleyin:

ip a 

IP adresini bir tarayıcıda ziyaret edin. Başarılı olursa, varsayılan Nginx karşılama sayfasını göreceksiniz.

Adım 2: Güvenlik Duvarı Kurallarını Yapılandırma

Karmaşık Olmayan Güvenlik Duvarını (UFW) Etkinleştir

UFW güvenlik duvarı kurallarını kolayca yönetmenize olanak tanır:

sudo ufw 'Nginx Full'e izin ver sudo ufw OpenSSH'ye izin ver sudo ufw etkinleştir 

Doğru portların açık olduğundan emin olmak için güvenlik duvarınızın durumunu kontrol edin:

sudo ufw durumu 

Adım 3: Nginx Proxy Yapılandırmasını Ayarlama

Özel Yapılandırma Dosyaları Oluşturun

Daha fazla esneklik ve güvenlik için, belirli yapılandırmaları depolamak üzere kod parçacıkları dosyalarını kullanın. Aşağıdaki dosyaları oluşturun:

  1. Güvenlik Başlıkları:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Korumayı artırmak için güvenlik başlıklarını tanımlayın:
    add_header X-Çerçeve-Seçenekleri "SAMEORIGIN"; add_header X-İçerik-Türü-Seçenekleri "nosniff"; add_header X-XSS-Koruma "1; mod=blok"; 
  2. Proxy Ayarları:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Uzun akışları optimize edin ve yavaş yanıtları önleyin:
    proxy_connect_timeout 60sn; proxy_send_timeout 60sn; proxy_read_timeout 60sn; 
  3. Oran Sınırları:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Aşırı talepleri azaltın:
    limit_req_zone $binary_remote_addr bölge=benimsınırım:10m oran=10r/s; 

Ana Yapılandırmaya Parçacıkları Dahil Et

Ana Nginx yapılandırmasını düzenleyin:

sudo nano /etc/nginx/nginx.conf 

Aşağıdakileri altına ekleyin: http engellemek:

/etc/nginx/snippets/*.conf dosyasını ekleyin; 

Değişiklikleri uygulamak için Nginx'i yeniden başlatın:

sudo systemctl nginx'i yeniden yükle 

Adım 4: Arka Uç Hizmeti için Ters Proxy Kurulumu

Sanal Ana Bilgisayar Oluşturun

Arka uç hizmetiniz için bir yapılandırma dosyası oluşturun:

sudo nano /etc/nginx/sites-available/jellyfin 

Jellyfin medya sunucusu için örnek yapılandırma:

sunucu { dinle 80; sunucu_adı jelly.yourdomain.com; konum / { proxy_pass http://10.10.0.112:8096; /etc/nginx/snippets/proxy.conf dosyasını dahil et; } } 

Sembolik bir bağlantı oluşturarak siteyi etkinleştirin:

sudo ln -s /etc/nginx/siteler-kullanılabilir/jellyfin /etc/nginx/siteler-etkin/ 

Nginx'i test edin ve yeniden yükleyin:

sudo nginx -t sudo systemctl reload nginx 

Adım 5: Let's Encrypt TLS ile Alan Adınızı Güvence Altına Alma

Alan adınızı güvence altına almak için Let's Encrypt'ı kullanarak ücretsiz sertifikalar verin:

sudo certbot --nginx -d jelly.alanadiniz.com 

Certbot, Nginx site dosyanızda SSL'yi otomatik olarak yapılandırır. Sertifikaların otomatik olarak yenilenmesini sağlamak için systemd zamanlayıcısının etkin olduğunu doğrulayın:

sudo systemctl list-timers | grep certbot 

Adım 6: Ek Güvenlik ve İSS Bağlantı Noktası Atlatma için Cloudflare'i Entegre Etme

Cloudflared'ı yükleyin

Cloudflared, 80 ve 443 numaralı portlardaki İSS kısıtlamalarını aşarak trafiği Cloudflare üzerinden yönlendirmek için güvenli bir tünel oluşturur:

  1. İndir .deb Cloudflare'in GitHub sayfasından paket.
  2. Paketi yükleyin:
    sudo dpkg -i cloudflared-version.deb 

Bir Tünel Yapılandırın

Cloudflare hesabınızla kimlik doğrulaması yapın:

cloudflared tünel girişi 

Yeni bir tünel oluştur:

cloudflared tüneli benim tünelimi oluştur 

Cloudflare yapılandırma dosyasını düzenleyin:

sudo nano /etc/cloudflared/config.yml 

Örnek yapılandırma:

tünel: my-tunnel kimlik bilgileri dosyası: /home/user/.cloudflared/my-tunnel.json giriş: - ana bilgisayar adı: jelly.yourdomain.com hizmet: http://localhost:8096 - hizmet: http_durumu:404 

Tünel hizmetini başlatın ve etkinleştirin:

sudo systemctl enable cloudflared sudo systemctl start cloudflared 

Önemli Noktalar

  • Nginx Ters Proxy: Trafiğin güvenli bir şekilde yönlendirilmesi ve arka uç hizmetlerinin optimize edilmesi için gereklidir.
  • TLS Şifrelemesi: Alan adlarınızı ücretsiz SSL sertifikalarıyla güvence altına almak için Let's Encrypt'ı kullanın.
  • Güvenlik Duvarı Kuralları: HTTP (80), HTTPS (443) ve SSH (22) için gerekli portları açın.
  • Güvenlik Optimizasyonu: Saldırıları önlemek için başlıkları ve hız sınırlamasını uygulayın.
  • Cloudflare Entegrasyonu:Güvenli ve İSS dostu barındırma için Cloudflared tünellerini kullanın.
  • Otomasyon: Systemd zamanlayıcıları SSL sertifikalarının otomatik olarak yenilenmesini sağlar.

Çözüm

Güvenli bir Nginx ters proxy kurulumu, ayrıntılara dikkat ve dikkatli bir yapılandırma gerektirir, ancak elde edeceğiniz sonuçlar buna fazlasıyla değer. İster Jellyfin gibi medya sunucularına ev sahipliği yapıyor olun, ister kurumsal uygulamaları yönetiyor olun, bu kılavuz size son derece güvenli ve verimli bir ortam oluşturmanız için gereken araç ve bilgileri sağlar. TLS, Cloudflare tünelleri ve gelişmiş optimizasyonlar gibi özellikler sayesinde altyapınız modern ihtiyaçlara hazır.

Kaynak: "Uygulamalarınızı Açığa Çıkarmayı Bırakın! Güvenli Bir Nginx Ters Proxy Oluşturun!" – KeepItTechie, YouTube, 19 Ağustos 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g

Kullanım: Referans amaçlı eklenmiştir. Yorum/inceleme için kısa alıntılar kullanılmıştır.

İlgili Blog Yazıları

tr_TR