Nginx ile Vernik sadece nginx kullanmaktan daha mı iyidir? [kapalı]


22

Varnish ile nginx kullanmak hakkında çok fazla konuşma görüyorum ve nedenini anlamıyorum. Nginx yeterli değil mi?

Nginx'in SSI'si var, ters proxy önbelleği var, hafif, SSL var, cgi, fpm vb. İle çalışabilir.

Cila aynı şeylere sahip, ancak ssl yok ve cgi desteği yok.


"Daha iyi" gerçekten özneldir. Kullanım durumunuza bağlı ...
voretaq7

7
Bazen basit bir soru, işi karmaşık olanlardan daha iyi yapar. "Orijinal soru-cevap formatı" için iyi olmadığını düşünerek, bu soruyu kapatan insanlardan böyle eylemler hakkında çok endişeliyim. Bu konuyu araştırıyorum ve bu tartışmanın sonucunu görmek çok ilgimi çekti.
Roger,

vernik güçlü vcl yapılandırma, temizleme, ters proxy önbelleği var, ESI nginx FCGI ile çalışabilir, ters proxy önbelleği, ssi, temizleme yok (belki de bir modül var) performansı akıllıca, neredeyse statik dosyalar için aynı, önbellekleme ... eğer yardımcı olabileceğim herhangi bir sorunuz var
Bogdan Cosmin

Yanıtlar:


14

Küçük statik dosyalar için nginx'ten% 5 daha hızlı vernik buldum - apache önünde vernik veya bir web uygulaması sunucusunun önünde vernik elde etmek büyük kazanç sağlar; ancak nginx'in önünde, fayda oldukça önemsizdir (özellikle genel giderler ve ekstra karmaşıklık dikkate alındığında)


Bunu desteklemek için bazı test sonuçları verebilir misiniz? Ya zaten nginx + opcache kullanıyorum. O zaman vernik kullanmanın bir faydası var mı?
Ciddi

23

İlk olarak, açıklığa kavuşturmak için: Nginx, gerektiren tüm özelliklere ve karmaşıklığa sahip bir web sunucusudur. Ayrıca önbelleğe alma özelliğine de sahiptir, ancak bu birincil tasarım hedefi değildir.

Vernik bir web sunucusu değil . Bu rolü dolduramaz (yine de gerçekten kötü bir VCL olmadan). Rolü, başka bir sunucu tarafından sağlanan içeriği önbelleğe almaktır. Gerekirse, isteği veya yanıtı değiştirebilir.

Eğer nginx trafiğinizi kaldırabilirse, o zaman yeter. Eğer nginx yetişemiyorsa, kapasitesini arttırmanın bir yolu önüne bir önbellek koymak ve önbelleği olabildiğince çok isteğin ele almasıdır.

Örnek olarak, Apache'yi bir dizi web sunucusundan görece karmaşık PHP web sitelerini çalıştırmak için kullanıyoruz. Kapasite sorunları yaşamaya başladığımızda Apache kümesinin önüne bir çift Vernik sunucusu yerleştirdik. Varnish ana bilgisayarları şimdi Apache arka ucunu rahatsız etmeden gelen tüm isteklerin% 85'ini işliyor.


Yani, Varnish PHP tarafından oluşturulan dinamik içeriği önbelleğe alıyor? Ya da sadece diğer şeyler?
Alix Axel

Cila, önbelleğe ne söylersen söyler. Yalnızca PHP çıktısını, yalnızca statik dosyaları veya her ikisini de önbelleğe alabilir. Çok güçlü bir araçtır.
Insyte

Senin özel örneğini soruyordum. Dinamik uygulamayı bozmadan dinamik içeriği önbelleğe almanın nasıl mümkün olduğu beni şaşırtıyor (yeni başlayanlar için PHP oturumları). Statik içeriği önbelleğe almak bana biraz gereksiz geliyor.
Alix Axel,

3
Dinamik içeriğe bağlıdır. Örneğin, sayfanın yorum içeren bir blog yazısı olduğunu söyleyin. Yorum dizisini oluşturmak son derece pahalı olabilir ancak 5 dakika süreyle önbelleğe alınması mükemmel şekilde kabul edilebilir. Öte yandan, bir webmail uygulamasının döndürdüğü dinamik içeriği önbelleğe almak açıkça sorunlu olurdu. Karışık bir vaka bile oluşturabilirsiniz: Bir e-ticaret uygulamasının çıktısının tamamını önbelleğe alın, ancak cilaya, alışveriş sepeti göstergesini doldurmak için arka uca geri dönmesini söyleyin.
Insyte
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.