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.
sbb-itb-59e1987
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:
- Güvenlik Başlıkları:
Korumayı artırmak için güvenlik başlıklarını tanımlayın:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Çerçeve-Seçenekleri "SAMEORIGIN"; add_header X-İçerik-Türü-Seçenekleri "nosniff"; add_header X-XSS-Koruma "1; mod=blok"; - Proxy Ayarları:
Uzun akışları optimize edin ve yavaş yanıtları önleyin:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60sn; proxy_send_timeout 60sn; proxy_read_timeout 60sn; - Oran Sınırları:
Aşırı talepleri azaltın:sudo nano /etc/nginx/snippets/rate-limit.conflimit_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:
- İndir
.debCloudflare'in GitHub sayfasından paket. - 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ı
- Optimum Web Sunucusu Performansı için Nginx Yapılandırmalarında Uzmanlaşma
- NGINX Yapılandırmasında Ustalaşma: Serverion B2B Web Barındırma Başarısının Kilidini Nasıl Açıyor
- NGINX Yapılandırma Geri Sarma: Serverion, Proxy Önbellek Ayarlamasının Kayıp Sanatını Yeniden Canlandırıyor
- Unutulmuş NGINX Yapılandırma Sınırı: Serverion'ın FastCGI Mikro Önbelleğe Alma Dalışı