Vernik -> Nginx -> Apache iyi bir fikir mi?


10

Yeni bir Web sunucusu için mimariyi düşünüyorum. Vargin'i Nginx'in önünde bir ön proxy olarak kullanmak ve tüm ağır kaldırma için apache'nin önünde statik dosyalar sunmak iyi bir fikir olabilir mi?

Ray uygulamaları üzerinde php ve ruby ​​çalıştıracağım.

Diğer iki süreç boyunca apache için php istekleri çok fazla havai geçen olacak mı?

Çok teşekkürler!

Yanıtlar:


8

Evet, geçerli. Kişisel yaklaşımım Varnish'i önden kullanmak ve trafiği statik NGINX istekleri ile ağır kaldırmanız arasında bölmek için VCL kullanmak (Apache veya Yolcu olsun ya da ... önemli değil). O, bu özellikle doğrudur olduğu ekstra yükü gerekmez aynı makinede. Size hiçbir şey almaz.


evet bu oldukça iyi bir fikir, çünkü vernik bunun için oldukça hızlı olmalı
Zoran Zaric

6

Vernik (henüz) gzip sıkıştırmasını desteklemez, bu nedenle verniğin ne gönderdiğini sıkıştırmak için öndeki nginx ile takas etmek bir fikir olabilir. Vernik ve nginx aynı kaynaklar için savaşmadığından (nginx gzip sıkıştırması için CPU kullanır, vernik belleği kullanır) aynı makinede sorunsuz çalışmalıdır.

Vernik artık gzip sıkıştırmasını destekliyor , bu yüzden SSL sonlandırmasına ihtiyacınız yoksa (yorumlarda önerildiği gibi), verniği doğrudan Internet ile temasa geçirmenizi öneririm.

Http için:

(internet) -> (vernik, gzip, önbellekleme, esi) -> (uygulama)

Https için:

(internet) -> (nginx, ssl) -> (vernik, gzip, önbellekleme, esi) -> (uygulama)

Orada da apache istiyorsanız (her yerde mod_foobar desteği için), vernik ve uygulama arasında koyardım

Güncelleme: Vernik 3.0'da gzip desteği içerecek şekilde güncellendi . Yorumlarda önerildiği gibi ssl / esi eklendi


İçeriği verniğe hizmet eden her şey gzip'te kodlarsa, vernik şikayet etmeden gzipte geçirir : varnish-cache.org/wiki/FAQ/Compression Verniğin yapmadığı tek şey, önbelleğe alınmamış sıkıştırılmamış içeriği almaktır uygulama ve sıkıştırılmış rezerv. Bu sizin anlayışınız mı?
ewalk

Vernik önünde nginx'i çalıştırdığınız tek zaman ESI kullandığınız zamandır. Sıkıştırılmış sayfalardan ESI montajı yapamayacağınız ve Vernik birleştirilmiş sayfayı sıkıştırmayacağından, Nginx bu sıkıştırmayı sağlamak için Vernik önüne yerleştirilir. Kaynak sıkıştırılmış içeriğe hizmet ediyorsa, Vernik bu verileri istemciye sıkıştırılmış biçimde iletir.
user6738237482

Evet, ESI bu yapılandırmayı önermemin nedenlerinden biri, ancak sanırım arka ucunuz sıkıştırır ve ESI kullanmazsanız, nginx ile dağıtabilirsiniz, çünkü verniğin çok fazla trafik olmadan işleyebileceğine inanıyorum terlemek.
mogsie

@ user6738237482, nginx SSL sonlandırmasını destekliyor, Vernik desteklemiyor. Aslında, vernik veya Apache gibi bir şeyin önünde olmak, nginx'in başlangıçta hızlı ve hafif bir proxy sunucusu olarak tasarlandığı şeydir.
rmalayter

4

Genel gider miktarı önemli olmamalıdır. Bu iki katmana sahip olma nedeninizin bir kısmının ölçeklenebilirlik olduğunu varsayıyorum; bu durumda apache'ye göre bu vernik ve nginx'in çok fazla çalışmadığını görürsünüz.

Bir makinede her üç katmanı da kullanıyorsanız, sunucunun kendisinin kapasitesine ulaşmadan önce daha az performans etkisi olmalıdır.

Alternatif olarak, neden yolcu ile vernik + nginx olmasın? Geçmişte bu kurulumu kullandım ve yolcu kullanan nginx nispeten hafif ve oldukça iyi koştu. Ray yığınınızı çalıştıran apache ile evli değilseniz düşünmeye değer olabilir.


evet raylar için apache'den nginx'e geçebilirim, ancak müşterilere .htaccess dosyalarını kullanma yeteneği vermek en azından php için apache için bir +.
Zoran Zaric

2

Ben bir başlangıç ​​e-ticaret platformu için sys yöneticisiyim. PHP / apache yığınımızın önünde vernik + nginx kullanıyoruz ve harikalar yarattı.

Yüksek bir bellek kullanımı uygulamamız var ve uygulama webnode başına yaklaşık 15-20gig RAM kullanıyordu ve bir kez vernik koyduktan sonra şimdi düğüm başına 8gig RAM civarında. Asla çivili olmadılar.

Bu yüzden kesinlikle tavsiye ederim.


3
Verniğin ssl ile konuşmadığını biliyorsun değil mi?
Mike

1

Ben bir Apache + PHP + MySQL sunucusunda boost modülü ile Drupal çalıştırıyorum, ama önlerinde gzip-statik özelliği ile Nginx kullanıyorum ve kullanıcılara hizmet etmek için boost sonuçlarını kullanıyorum.

Ve hepsinin üstünde vernik kullanıyorum, hepsi aynı bilgisayarda, iyi sonuçlar alıyorum.

Ben de Drupal önbellek için çok iyi değil başlıkları tweak için Nginx kullanıyorum.


0

ESI gibi bir şeye ihtiyacınız olmadığı sürece iyi bir fikir değildir. Nginx'in daha iyi performans gösteren kendi önbellek sistemi vardır .


Bunun eski bir yanıt olduğunu biliyorum, ancak maalesef bu bağlantı artık mevcut değil, bu nedenle talebinizi doğrulayamıyorum. Deneyimlerime göre Vernik, hız ve esneklik bakımından bir ters proxy olarak yenmek zor.
Martijn Heemels


-1

Apache SSL'yi sonlandırmak (şifresini çözmek) için kullanılabilir, http://noosfero.org/Development/Varnish#SSL adresini kontrol edin


1
Lütfen cevapları cevap olarak göndermekten kaçının, çünkü cevabınız linkrottan etkilendiğinde anlamını yitirebilir . Lütfen cevabınızı düzenlemeyi ve cevabınızda vermiş olduğunuz bağlantıdan ilgili parçaları eklemeyi düşünün. Elbette bağlantıyı referans olarak yerinde bırakın.
Bryan
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.