Middle
Nginx'te ne oluyor?
sobes.tech yapay zeka
AI'dan gelen yanıt
Ruby ile yazılmış bir uygulama (örneğin, Rails veya Sinatra framework'ü kullanılarak) uygulama sunucusunda çalıştırılır (örneğin, Puma, Unicorn, Passenger). Nginx, ön uç sunucu olarak hareket eder, gelen HTTP isteklerini alır ve bunları Ruby uygulama sunucusuna yönlendirir.
Bu bağlamda Nginx'in temel işlevleri:
- İstekleri Proxy Etme: Nginx, ters proxy olarak hareket eder. Müşteri tarayıcılarından gelen istekleri alır ve Ruby uygulama sunucusuna iletir. Uygulama sunucusundan alınan yanıtı müşteriye geri gönderir.
- Statik Dosya Servisi: Nginx, statik dosyaları (CSS, JavaScript, resimler) doğrudan verimli bir şekilde servis edebilir, böylece Ruby uygulama sunucusunun yükünü azaltır. Bu, performansı artırır.
- Yük Dengeleme: Birden fazla Ruby uygulama sunucusu örneğiniz varsa, Nginx gelen istekleri bunlar arasında dağıtarak arızaya dayanıklılık ve ölçeklenebilirlik sağlar.
- SSL Sonlandırma: Nginx, SSL/TLS şifrelemesini yönetebilir ve bu görevi Ruby uygulama sunucusundan alır.
- Önbellekleme: Nginx, yanıtları önbelleğe alabilir, böylece tekrar eden isteklerde sayfa yükleme hızını artırır.
- Sıkıştırma (gzip): Nginx, yanıtları göndermeden önce sıkıştırabilir, böylece iletilen veri miktarını azaltır.
Ruby uygulaması için Nginx yapılandırması genellikle şunları içerir:
- Alan adınız için sanal ana bilgisayar tanımlaması.
- İstekleri Ruby uygulama sunucusuna proxy olarak yapılandırma (örneğin, soket veya TCP portu üzerinden).
- Statik dosyalar için yolların belirlenmesi.
- SSL/TLS yapılandırması (gerekirse).
- Yük dengeleme yapılandırması (gerekirse).
# Puma ile Rails için basit Nginx yapılandırma örneği
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
# Soket üzerinden Puma'ya proxy
proxy_pass http://unix:/path/to/your/app/shared/sockets/puma.sock;
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;
}
location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
# Statik dosyaların servisi
root /path/to/your/app/public;
expires max;
add_header Cache-Control public;
}
# Diğer statik kaynaklar için diğer location bloklarını ekleyin
}
Sonuç olarak, Nginx, Ruby uygulama sunucusunun önünde çok amaçlı bir araç olarak hareket eder, performansını, güvenliğini ve ölçeklenebilirliğini artırır.