Sobes.tech
Junior

Nginx ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Nginx, yüksek performanslı asenkron bir web sunucusu ve ters proxy sunucusudur ve şu amaçlar için kullanılır:

  1. Statik dosyaların hizmeti: HTML, CSS, JavaScript, resimler ve diğer statik kaynakların hızlı ve verimli teslimi. Asenkron mimarisi sayesinde, düşük kaynak kullanımıyla çok sayıda eşzamanlı bağlantıyı işleyebilir.
  2. Ters proxy: Müşteri isteklerini bir veya birkaç arka uç sunucuya (uygulamalar, API'ler) iletmek ve yanıtları müşterilere geri göndermek. Bu, yük dengeleme, güvenliği artırma (ağ yapısını gizleme) ve SSL terminasyonu sağlar.
  3. Yük dengeleme: Gelen istekleri, uygulamanın kullanılabilirliğini ve ölçeklenebilirliğini artırmak için birden fazla sunucu arasında dağıtma. Farklı algoritmaları destekler (örneğin, round robin, en az bağlantı).
  4. Önbellekleme: Arka uç üzerindeki yükü azaltmak ve yanıt hızını artırmak için statik ve dinamik kaynakların önbelleğe alınması.
  5. SSL/TLS terminasyonu: HTTPS trafiğinin şifre çözme işlemi, arka uca iletilmeden önce, bu da uygulama sunucularındaki yükü azaltır ve sertifikaların merkezi yönetimini sağlar.
  6. Sıkıştırma: Veri sıkıştırma (örneğin, Gzip) ve bu veriyi müşteriye göndermeden önce, böylece trafik azaltılır ve sayfa yükleme hızları artar.
  7. İstek hız sınırlandırması: Belirli bir zaman diliminde, belirli bir müşteriden gelen istek sayısını sınırlandırarak arka uçları aşırı yüklenmeden koruma.
  8. Web uygulama güvenlik duvarı (WAF): Yaygın web saldırılarına karşı temel koruma (örneğin, SQL enjeksiyonları, XSS).
# Statik dosyaları hizmet etmek ve API proxy'si için Nginx yapılandırma örneği

server {
    listen 80;
    server_name example.com; # Alan adı

    location / {
        root /var/www/html; # Statik dosyaların yolu
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # API isteklerini başka bir sunucuya proxy yapma
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}