Nginx Nedir? Web Sunucusu, Reverse Proxy ve Load Balancer Olarak Nginx
Nginx nedir, ne işe yarar? Apache ile farkı, reverse proxy ve load balancer nedir, Ubuntu'ya Nginx kurulumu ve Node.js uygulaması için örnek yapılandırma.
Kısa cevap: Nginx (okunuşu "engine-x"), yüksek performanslı, açık kaynaklı bir web sunucusudur. Statik dosyaları (HTML, CSS, görseller) çok hızlı sunar; bunun yanında reverse proxy (ters vekil) olarak gelen istekleri arkadaki uygulamalara (Node.js, PHP, Python) iletir, load balancer (yük dengeleyici) olarak trafiği birden fazla sunucuya dağıtır ve SSL sonlandırma yapar. Dünyadaki en yaygın web sunucularından biridir.
Nginx Ne İşe Yarar?
- Web sunucusu: Web sitesinin dosyalarını ziyaretçilere gönderir.
- Reverse proxy: Dışarıdan gelen isteği karşılayıp arkadaki uygulamaya iletir; uygulama portunu (ör. 3000) internete açmanıza gerek kalmaz.
- SSL/TLS sonlandırma: HTTPS şifrelemesini Nginx üstlenir; uygulama düz HTTP konuşur.
- Load balancer: Trafiği birden fazla uygulama sunucusuna dağıtır.
- Önbellek ve sıkıştırma: Yanıtları önbelleğe alır, gzip/brotli ile sıkıştırır.
- Hız sınırlama: IP başına istek sınırı koyarak kötüye kullanımı azaltır.
Reverse Proxy Nedir?
Normal bir proxy, kullanıcı adına internete çıkar. Reverse proxy ise sunucu adına gelen istekleri karşılar:
Ziyaretçi → Nginx (443, SSL) → Uygulama (localhost:3000)
Böylece tek bir sunucuda birden fazla uygulamayı farklı alan adlarıyla yayınlayabilir (site.com → 3000, n8n.site.com → 5678), SSL'i tek yerden yönetebilirsiniz.
Load Balancer Nedir?
Load balancer (yük dengeleyici), gelen trafiği birden fazla sunucuya dağıtan sistemdir. Bir sunucu çökerse trafiği diğerlerine yönlendirerek kesintiyi önler ve toplam kapasiteyi artırır. Nginx bunu upstream bloğuyla yapar; büyük sistemlerde bulut sağlayıcıların yönetilen load balancer hizmetleri de kullanılır.
Nginx ile Apache Arasındaki Fark
| Nginx | Apache | |
|---|---|---|
| Mimari | Olay güdümlü (event-driven); az bellekle çok bağlantı | Süreç/iş parçacığı tabanlı |
| Statik dosya | Çok hızlı | İyi |
| Yapılandırma | Merkezi dosyalar | .htaccess ile klasör bazlı ayar |
| PHP | PHP-FPM üzerinden | Modül (mod_php) veya PHP-FPM |
| Yaygın kullanım | Reverse proxy, yüksek trafik, modern uygulamalar | Paylaşımlı hosting, .htaccess gerektiren eski uygulamalar |
Ubuntu'ya Nginx Kurulumu
apt update && apt install -y nginx
systemctl enable --now nginx
ufw allow 'Nginx Full'
Tarayıcıdan sunucunuzun IP adresine girdiğinizde Nginx karşılama sayfasını görürsünüz.
Örnek: Node.js Uygulaması İçin Reverse Proxy
/etc/nginx/sites-available/site.conf:
server {
listen 80;
server_name site.com www.site.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
# Ücretsiz SSL
apt install -y certbot python3-certbot-nginx
certbot --nginx -d site.com -d www.site.com
nginx -t yapılandırmayı test eder; hata varsa yeniden yüklemeden önce size söyler. SSL ayrıntıları için: SSL Nedir?
Sık Görülen Nginx Hataları
| Hata | Olası neden |
|---|---|
| 502 Bad Gateway | Arkadaki uygulama çalışmıyor veya yanlış porta yönlendiriliyor |
| 504 Gateway Timeout | Uygulama çok geç yanıt veriyor |
| 413 Request Entity Too Large | Yükleme sınırı düşük; client_max_body_size artırılmalı |
| 403 Forbidden | Dosya izinleri veya index dosyası eksik |
Alternatif: Caddy
Otomatik SSL'i hiçbir ek komut gerektirmeden yöneten Caddy, basit kurulumlar için Nginx'e pratik bir alternatiftir (örnek: n8n kurulum rehberi).
Sıkça Sorulan Sorular
Nginx nedir?
Nginx, yüksek performanslı ve açık kaynaklı bir web sunucusudur. Statik dosyaları sunmanın yanında reverse proxy, load balancer ve SSL sonlandırıcı olarak da kullanılır.
Reverse proxy nedir?
Reverse proxy, dışarıdan gelen istekleri karşılayıp arkadaki uygulama sunucularına ileten ara katmandır. SSL yönetimi, tek sunucuda birden çok uygulama yayınlama ve güvenlik için kullanılır.
Load balancer nedir?
Load balancer (yük dengeleyici), gelen trafiği birden fazla sunucuya dağıtarak kapasiteyi artıran ve bir sunucu çöktüğünde kesintiyi önleyen sistemdir.
Nginx mi Apache mi?
Yüksek trafik, reverse proxy ve modern uygulamalar için genellikle Nginx tercih edilir. .htaccess desteği gerektiren eski uygulamalar ve paylaşımlı hostingte Apache yaygındır.
502 Bad Gateway hatası nedir?
Nginx'in isteği ilettiği arka uç uygulamadan geçerli yanıt alamadığını gösterir. Genellikle uygulamanın çalışmaması veya yanlış porta yönlendirme yapılmasından kaynaklanır.
Nginx İçin Hazır Linux Sunucu
Root erişimli, NVMe SSD'li sunucunuz dakikalar içinde hazır. TL ile ödeme, Türkçe destek. En uygun paket: aylık ₺709 (KDV dahil).