Rehber
Ubuntu üzerinde Nginx ile reverse proxy kurulumu
Bir uygulama sunucusunu doğrudan internete açmak yerine Nginx'i reverse proxy olarak kullanmak; SSL, önbellekleme ve yük dengeleme gibi katmanları merkezi hale getirir.
Bir Node.js, Python veya Docker container'ında çalışan uygulama sunucusunu doğrudan internete açmak yerine önüne bir Nginx reverse proxy koymak, SSL sonlandırma, statik dosya sunumu ve birden fazla uygulamayı tek bir IP üzerinden yönlendirme gibi işlevleri merkezi bir katmanda toplar.
Reverse proxy mimarisi
Kurulum adımları
1. Nginx'i kurun
Ubuntu'nun resmi paket deposu üzerinden `sudo apt update && sudo apt install nginx` komutu Nginx'i kurar ve varsayılan olarak systemd servisi olarak etkinleştirir. Kurulumu `sudo systemctl status nginx` ile doğrulamak, servisin çalışır durumda olduğunu teyit eder.
2. Site yapılandırma dosyasını oluşturun
Nginx'in resmi dokümantasyonuna göre `proxy_pass` direktifi, gelen isteği belirtilen adrese (genellikle localhost üzerindeki bir port) yönlendirir. `proxy_set_header` satırları, orijinal istemci bilgisinin (gerçek IP, host başlığı) arka plandaki uygulamaya doğru şekilde iletilmesini sağlar — bu satırlar atlanırsa uygulama tüm istekleri Nginx'ten geliyormuş gibi görür.
3. Siteyi etkinleştirin ve test edin
| Komut | Ne yapar |
|---|---|
| sudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/ | Yapılandırmayı etkinleştirir |
| sudo nginx -t | Yapılandırma dosyasında sözdizimi hatası olup olmadığını kontrol eder (yeniden başlatmadan önce mutlaka çalıştırılmalı) |
| sudo systemctl reload nginx | Servisi kesintiye uğratmadan yeni yapılandırmayı yükler |
4. SSL sonlandırmayı ekleyin
Reverse proxy'nin en yaygın kullanım nedenlerinden biri SSL sonlandırmadır — HTTPS trafiği Nginx'te çözülür, arka plandaki uygulamayla iletişim genellikle şifresiz HTTP üzerinden (aynı sunucu içinde) devam eder. Let's Encrypt'in ücretsiz sertifikalarını Certbot'un Nginx eklentisiyle otomatik olarak yapılandırmak, bu adımı büyük ölçüde otomatikleştirir.
Sık yapılan hatalar
- `proxy_set_header Host $host;` satırını unutmak — bu durumda arka plandaki uygulama yanlış host bilgisiyle çalışabilir
- Yapılandırmayı test etmeden (`nginx -t` atlayarak) doğrudan `systemctl restart nginx` çalıştırmak — hatalı yapılandırma servisi tamamen durdurabilir
- WebSocket bağlantıları için gerekli `Upgrade`/`Connection` başlıklarını eklemeyi unutmak (canlı bağlantı gerektiren uygulamalarda bağlantı kopması yaşanır)
- Zaman aşımı (timeout) değerlerini varsayılanda bırakmak — uzun süren istekler beklenmedik şekilde kesilebilir
Sonuç
Doğru yapılandırılmış bir Nginx reverse proxy katmanı; güvenlik, performans ve operasyonel esneklik açısından doğrudan internete açık bir uygulama sunucusundan çok daha sağlam bir temel sunar.
Kategoriler
Etiketler
Kaynaklar
Paylaş
İlgili içerikler
Web Sitesi İçin Güvenilir Yedekleme Stratejisi Nasıl Kurulur?
Bir sitenin veritabanı ve dosyalarını düzenli, test edilmiş ve farklı konumlarda yedekleyen bir stratejinin temel bileşenlerini anlatıyoruz.
2 dk okuma
Yazıyı okuDocker ile Web Uygulaması Dağıtımı: Temel Kavramlar
Docker konteynerlerinin ne olduğunu, geleneksel sunucu dağıtımından farkını ve web uygulamalarını konteynerleştirmenin avantajlarını anlatıyoruz.
2 dk okuma
Yazıyı okuCloudflare Workers ile Sunucusuz (Serverless) Fonksiyonlar
Cloudflare Workers, kod parçacıklarını uç sunucularda çalıştırmanızı sağlayan bir platform. Ne işe yaradığını ve tipik kullanım senaryolarını anlatıyoruz.
2 dk okuma
Yazıyı oku
