Nginx, en popüler web ve ters proxy sunucusu olmalı, hiçbiri. Rusya'da doğmuş yüksek performanslı bir web sunucusudur, özellikle yüksek eşzamanlılık durumunda Apache ile karşılaştırıldığında mükemmel performansa sahiptir. Yük dengelemeye ek olarak, başka hangi kullanımları var? Aşağıya bakalım.
Bir, statik proxy
Nginx, statik dosyaları işlemede iyidir ve çok iyi bir görüntü ve dosya sunucusudur. Tüm statik kaynakları nginx'e koymak, uygulamayı dinamik ve statik ayırma yapabilir ve performans daha iyidir.
İki, yük dengeleme
Nginx, hizmetin yük dengesini ters proxy üzerinden gerçekleştirebilir, sunucunun tek düğüm arızasını önleyebilir ve yük etkisini elde etmek için belirli bir stratejiye göre isteği farklı sunuculara iletebilir. Yaygın olarak kullanılan yük dengeleme stratejileri
1. Anket
İstekler sırayla arka uç sunuculara dağıtılır ve sunucu bağlantılarının gerçek sayısı ve mevcut sistem yükünden bağımsız olarak her bir arka uç sunucusunu dengeli bir şekilde ele alır.
2. Ağırlıklı yoklama
Farklı arka uç sunucular, farklı makine konfigürasyonlarına ve mevcut sistem yüküne sahip olabilir, bu nedenle stres direnci yetenekleri de farklıdır. Daha fazla talebi karşılamalarına izin vermek için yüksek yapılandırmalı ve düşük yüklü makineler için daha yüksek ağırlıklar yapılandırın; düşük yapılandırmalı ve yüksek yüklü makineler için ise sistem yükünü azaltmak için bunlara daha düşük ağırlıklar atayın.Ağırlıklı sorgulama iyi çalışır. Bu sorunla dikkatli bir şekilde ilgilenin ve istekleri sıra ve ağırlık açısından arka uca dağıtın.
3. ip_hash (kaynak adres karması)
İstemcinin IP adresine göre, bir hash fonksiyonu aracılığıyla bir değer hesaplanır ve değer, sunucu listesinin boyutu üzerinde bir modulo işlemi gerçekleştirmek için kullanılır Elde edilen sonuç, istemcinin erişmek istediği sunucunun seri numarasıdır. Yük dengeleme için kaynak adres karma yöntemi kullanılır.Aynı IP adresine sahip istemciler için, arka uç sunucu listesi değişmediğinde, her seferinde erişim için aynı arka uç sunucusuna eşlenir.
4. Rastgele
Sistemin rastgele algoritması aracılığıyla sunuculardan biri, arka uç sunucunun liste boyutu değerine göre erişim için rastgele seçilir.
5. less_conn (en az bağlantı numarası yöntemi)
Arka uç sunucusunun yapılandırması aynı olmadığından, isteğin işlenmesi hızlı veya yavaş olabilir.Minimum bağlantı yöntemi, mevcut isteği arka uç sunucusunun mevcut bağlantı durumuna göre işlemek için en az güncel birikim bağlantısına sahip sunucuyu dinamik olarak seçer. , Arka uç hizmetlerinin kullanım verimliliğini olabildiğince artırın ve sorumluluğu her sunucuya makul bir şekilde dağıtın.
Üç, mevcut sınır
Nginx'in mevcut sınırlama modülü, yüksek eşzamanlılık senaryolarında çok pratik olan sızdıran kova algoritmasına dayalı olarak uygulanmaktadır.
1. Yapılandırma parametreleri
1) limit_req_zone, http bloğunda tanımlanır ve $ binary_remote_addr, istemci IP adresinin ikili formunu temsil eder.
2) Bölge, IP durumunun paylaşılan hafıza alanını ve URL erişim sıklığını tanımlar. zone = anahtar sözcük, bölgenin adını ve iki nokta üst üste ve ardından bölge boyutunu tanımlar. 16.000 IP adresinin durum bilgisi yaklaşık 1MB'dir, bu nedenle örnekteki alan 160.000 IP adresini saklayabilir.
3) Oran, daha büyük istek oranını tanımlar. Örnekteki oran, saniyede 100 isteği aşamaz.
2. Geçerli sınırı ayarlayın
Burst kuyruk boyutu, nodelay, tek bir istek arasındaki süreyi sınırlamaz.
Dört, önbellek
1. Statik kaynak önbelleği için tarayıcı önbelleği ve süresi dolar.
2. Proxy katmanı önbelleği
Beş, siyah beyaz liste
1. Sınırsız akış beyaz listesi
2. Kara Liste
Pekala, yukarıdakiler nginx, statik ayırma, yük dengeleme, akım sınırlama, önbelleğe alma, kara ve beyaz listeler vb.'nin birkaç ortak işlevidir, anlıyor musunuz?