Nginx Nedir? Kurulumdan Production Seviyesine Kadar Detaylı Rehber.
Modern web uygulamaları artık sadece çalışmakla yetinmiyor; hızlı, güvenli ve ölçeklenebilir olmak zorunda. Kullanıcılar milisaniyelerle…
Nginx Nedir? Kurulumdan Production Seviyesine Kadar Detaylı Rehber.
Modern web uygulamaları artık sadece çalışmakla yetinmiyor; hızlı, güvenli ve ölçeklenebilir olmak zorunda. Kullanıcılar milisaniyelerle yarışan deneyimler beklerken, geliştiriciler de artan trafik ve karmaşık sistem mimarileriyle başa çıkmak zorunda kalıyor. İşte tam bu noktada, sahneye uzun yıllardır kendini kanıtlamış güçlü bir araç çıkıyor: Nginx.
İlk bakışta basit bir web sunucusu gibi görünse de Nginx, aslında modern backend mimarilerinin merkezinde yer alan çok yönlü bir çözüm. Reverse proxy’den load balancing’e, cache mekanizmalarından güvenlik katmanına kadar birçok kritik görevi üstlenebilir. Üstelik bunu minimum kaynak tüketimiyle, maksimum performansla yapar.
Bu yazıda Nginx’i sadece “kur ve çalıştır” seviyesinde değil, gerçek dünya projelerinde nasıl konumlandırman gerektiğiyle ele alacağız. Eğer bir backend geliştiriciysen ya da sistemini production seviyesine taşımak istiyorsan, burada anlatılanlar doğrudan işine yarayacak.

Bu yazıda:
- Nginx nedir
- Nasıl kurulur
- Reverse proxy nasıl yapılır
- Node.js / backend ile nasıl kullanılır
- Production optimizasyonları
hepsini gerçek dünya kullanımına uygun şekilde anlatacağım.

Nginx Nedir?
Nginx, açık kaynaklı bir:
- Web server
- Reverse proxy
- Load balancer
- HTTP cache sunucusudur
Apache’den farkı: Event-driven (asenkron) mimari kullanır
Bu sayede:
- Daha az RAM tüketir
- Aynı anda daha fazla request handle eder
Nginx Mimarisi
Nginx şu şekilde çalışır:
- Master Process
- Worker’ları yönetir
- Worker Process
- Request’leri işler
Önemli nokta: Her worker binlerce request’i aynı anda handle edebilir.
Nginx Kurulumu (Ubuntu)
sudo apt update
sudo apt install nginx -y
Servisi başlat:
sudo systemctl start nginx
sudo systemctl enable nginx
Kontrol:
systemctl status nginx
Tarayıcıdan:
http://server-ip
Nginx Dosya Yapısı
Ana config:
/etc/nginx/nginx.conf
Site configleri:
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
Basit Bir Site Yayınlama
Yeni config oluştur:
sudo nano /etc/nginx/sites-available/myapp
server {
listen 80;
server_name example.com;root /var/www/myapp;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Aktif et:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Reverse Proxy (Node.js ile Kullanım)
Nginx’in en güçlü özelliği burada başlıyor.
Backend geliştiren biri için en kritik kullanım
server {
listen 80;
server_name api.example.com;location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Mimari Görünüm
Akış:

Client → Nginx → Node.js App
Avantajlar:
- SSL burada çözülür
- Rate limit uygulanır
- Cache yapılır
- Backend gizlenir
SSL (HTTPS) Kurulumu (Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
- Otomatik olarak; SSL ekler, redirect yapar (HTTP → HTTPS)
Performans Ayarları
1. Worker Ayarı
worker_processes auto;
2. Connection Ayarı
events {
worker_connections 1024;
}
3. Gzip Aç
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript;
}
4. Cache Ayarı
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires 30d;
access_log off;
}
Rate Limiting (DDoS Koruma)
http {
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
location /api/ {
limit_req zone=api_limit burst=20 nodelay;
}
}
}
🧩 Load Balancer Kurulumu
upstream backend {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
}
location / {
proxy_pass http://backend;
}
Nginx Logları
Access log:
/var/log/nginx/access.log
Error log:
/var/log/nginx/error.log
Canlı izleme:
tail -f /var/log/nginx/access.log
Production Tavsiyeleri
Gerçek projede şunları mutlaka yap:
- ✅ Cloudflare veya CDN kullan
- ✅ Rate limit aktif et
- ✅ Fail2Ban kur
- ✅ Log rotation ayarla
- ✅ Docker ile izole et
- ✅ Health check endpoint ekle
Bonus: Microservice Özel
Mikroservis mimarisi kullanıyorsan:
location /api/user {
proxy_pass http://user-service:3000;
}
location /api/wallet {
proxy_pass http://wallet-service:3001;
}
Bu sayede:
- Tek domain
- Çok servis
- Temiz API gateway
Sonuç:
Görüldüğü gibi Nginx, basit bir web sunucusundan çok daha fazlasını sunuyor. Doğru yapılandırıldığında; uygulamanın performansını artıran, güvenliğini güçlendiren ve ölçeklenebilirliğini sağlayan kritik bir katman haline geliyor. Özellikle modern mikroservis mimarilerinde ve yüksek trafikli sistemlerde Nginx, adeta görünmeyen bir omurga gibi çalışır.
Bu yazıda temel kurulumdan başlayarak reverse proxy, SSL, cache, rate limiting ve load balancing gibi production seviyesinde ihtiyaç duyacağın yapıların çoğunu ele aldık. Ancak Nginx dünyası bunlarla sınırlı değil; daha ileri seviyede CDN entegrasyonu, container orchestration (Docker & Kubernetes) ve gelişmiş güvenlik senaryoları ile çok daha güçlü sistemler kurmak mümkün.
Eğer kendi projelerinde Nginx’i aktif olarak kullanmaya başlarsan, zamanla sadece bir araç değil, mimarinin en kritik parçalarından biri haline geldiğini fark edeceksin. Bu noktadan sonra mesele artık “Nginx kullanmak” değil, onu ne kadar verimli ve doğru konumlandırabildiğin olacak.
메타데이터
- post_id
- a4c9eabc111b
- slug
- nginx-nedir-kurulumdan-production-seviyesine-kadar-detaylı-rehber-a4c9eabc111b
- url
- https://medium.com/@dogucanyegin81/nginx-nedir-kurulumdan-production-seviyesine-kadar-detayl%C4%B1-rehber-a4c9eabc111b
- canonical_url
- https://medium.com/@dogucanyegin81/nginx-nedir-kurulumdan-production-seviyesine-kadar-detayl%C4%B1-rehber-a4c9eabc111b
- author_url
- https://medium.com/@dogucanyegin81
- status
- ok
- fetched_at
- 2026-07-07 20:18:40