Nedir NGINX
Web sunucusu ve ters proxy
NGINX, yüksek performanslı açık kaynaklı bir web sunucusu, ters proxy, yük dengeleyici ve HTTP önbelleğidir. 2004 yılında Igor Sysoev tarafından oluşturuldu, şu anda F5 Networks'e aittir.
Temel İşlevler
- Web sunucusu — statik içerik sunma
- Ters proxy — backend sunuculara istek proxy'leme
- Yük dengeleme — sunucular arasında trafik dağıtımı
- SSL/TLS sonlandırma — HTTPS bağlantılarını işleme
- HTTP önbellekleme — upstream sunucu yanıtlarını önbellekleme
Avantajlar
- Asenkron olay güdümlü mimari
- Düşük bellek tüketimi
- Yüksek performans (10K+ bağlantı)
- Basit yapılandırma
- Modüler mimari
Tipik Kullanım Durumları
- Statik dosyaları sunma (HTML, CSS, JS, resimler)
- Node.js, Python, PHP, Java için ters proxy
- API Gateway
- Docker container'ları arasında yük dengeleme
- Mikroservisler için SSL boşaltma
Temel Yapılandırma
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Parametre | NGINX | Apache | |-----------|-------|--------| | Mimari | Event-driven | Process/Thread | | Statik dosyalar | Daha hızlı | Daha yavaş | | .htaccess | Hayır | Evet | | Yapılandırma | Merkezi | Dağıtık |
Popüler Modüller
- ngx_http_gzip_module — yanıt sıkıştırma
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — proxy'leme
- ngx_http_upstream_module — yük dengeleme
- ngx_http_rewrite_module — URL yeniden yazma