Nginx için core, full, extra ve light paketleri arasındaki fark nedir?


72

nginxUbuntu'da, resmi depolardan beş paketten biri tarafından sağlanan sanal bir pakettir (en azından 14.04 itibariyle, varsayılan olarak nginx-core, inanıyorum):

$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
 nginx-core
 nginx-extras
 nginx-full
 nginx-light
 nginx-naxsi

Bu paketler arasındaki fark nedir ve onlar için önerilen kullanım durumları nelerdir?

Bu biraz eski Debian Wiki sayfası arasında bir özellik karşılaştırması olan extras, full, lightve naxsifakat hiç söz yapılmıştır core. 14.04'te bunun ne kadarı değişti?


İkincisi Anladığım kadarıyla, nginxApache'nin yaptığı gibi modüllerin çalışma zamanını etkinleştirmeyi desteklemiyor, bu yüzden nginx-extrasetki performansı mı kuruluyor?


1
Birisi, özellik karşılaştırma çizelgesinin daha yeni bir sürümünü yapmış ve Google dokümanlarında paylaştığı görülüyor: docs.google.com/spreadsheet/…
Steven K

1
@StevenKath, bu belgenin yalnızca Debian'a dayandığını not eder. Nginx çekirdeğine dokunmaz ve naxsi lezzetini gideren dengesiz değişiklikleri içermez (çünkü bakımı önemsiz değildir).
Thomas Ward

Yanıtlar:


99

Steven'ın cevabı kilit noktalara değinmekle birlikte, her bir tadın ne olduğuna dair çok temel bir özet olsa da, paketlemede biraz çalıştıkça ve farklı modül modüllerinde çok daha geniş bir açıklama yapacağım. her biri iyi bir cevap için kesinlikle çok önemlidir. Temel açıklamalar, kıyaslama için pek adaletli değil. (Ayrıca, Steven’a haber veren eski blogumdan alıntılar yapıyor (ve hatta bana er bakıcı ’olarak atıfta bulunuyor.) Nginx’in geleceği ana yazıyı yeni bloguma aktarmak istedim, ancak fırsatım olmadı .)

Ayrıca, NGINX web sunucusu için en yeni paketlerin neredeyse tamamen Debian'dan yola çıkarak kendi başıma tutulan NGINX PPA'larında mevcut olduğunu unutmayın. ( Kararlı KPA (bu gönderi itibariyle 1.6.2); Mainline PPA (bu gönderi itibariyle 1.7.7, 1.7.8 ile 4 Aralık 2014 tarihinde karaya çıkarıldı))


Farklı Tatlar nginx:

Farklı tatlar, hepsi aynı versiyondur nginx, ancak tatlar, farklı özellik setleri (için nginx-extras) yanı sıra minimum ve en etkili "tam" fonksiyon setlerini sağlamak için Debian paket bakımcıları tarafından kararlaştırılmıştır . web sunucuları web sitelerinde kullanılmış olma eğilimindedir. Bir özelliğin bir başkası için seçilmesinin kesin nedeni benim için bilinmemektedir, ancak IRC'deki Debian idarecilerinden biriyle yapılan ek görüşmede, ilk değerlendirmemi onaylayan bir ifade verdim, her bir değişkenin farklı bir özellik kümesi olması gerektiğini farklı bir kullanım durumu - çok daha ağır ekstralar eklemeden daha eksiksiz bir özellik için light, en az site barındırma özelliğine sahip hafif bir özellik kümesi fulliçin veextrasUbuntu'ya dahil edilebilecek paketteki her şey için. naxsi15.04'ten önce, Naxsi varyantıydı, özellikle naxsi oldukça kaynak yoğun olabileceğinden, yalnızca içindeki minimum modül modülleri vardı.

Güya, şu anda günlüklerini kaydedemediğim özel bir sohbette Upstream NGINX ile düzenli olarak koordine eden NGINX'in Debian sahiplerinden birine göre, NGINX 2.x yüklenebilir modül desteğine sahip olacak. Bu durumda, light, fullve extrasher modül içeren tek tek paketler çağırıyoruz metapackages haline gelecektir. Bu durumun ortaya çıktığı tarih henüz bilinmemekle birlikte, hangi modüllerin gerçekten bunu yapabilecekleri de bilinmemektedir.

Halihazırda bulunduğu gibi, nginxsanal paket mevcut sürümlerden sadece birini kurmak için tasarlanmıştır. Varsayılan olarak, temelde nginx-coreolduğu gibi ve bireylerin daha fazla kullanması durumunda seviniriz nginx-core, sanal pakette görülen ve yükleme girişiminde bulunan ilk öğedir. (Bununla birlikte, nginxpaket tatların herhangi birine dayanabilir nginxve esas olarak herhangi bir özel tat tercihine ihtiyaç duymayanlar için kurulumu biraz daha kolaylaştırmak için oradadır)

Aşağıda her bir varyantta bulunan ( Vivid debian/controldosyasından ve Trusty debian/controldosyasından (Naxsi paketleri Vivid'te kaldırıldıkça)) çıkan spesifik modüllerle ilgili ayrıntılı bir döküm aşağıda verilmektedir. Bunun Ubuntu’daki en güncel değişiklikleri yansıtmadığını ve güncellenmiş, doğru bilgilerinizi aldığınızdan emin olmak için bu paket açıklamalarına başvurmanız gerektiğini unutmayın :

  • nginx-core14.04 itibariyle Ubuntu Havuzlarının Ana bölümündeki tek lezzet ve sadece Ubuntu depolarında var (ve PPA'larda veya Debian'da değil ve Debian'da bulunmayacak). nginx-fullTat ile etkili bir şekilde aynıdır , ancak üçüncü taraf modülleri içermez. Kullanmanın arkasındaki sebepnginx-fullÇünkü bu değişkenin temeli, üçüncü taraf modülleri aynı anda dışarıda tutarken, yerleşik ikili sistemlerde nispeten tam teşekküllü bir çekirdek modüller seti sağlamak istedik. Buna bağlı olarak, Güvenlik Ekibi kodu gözden geçirdiği ve üçüncü parti modüllerinin nginx-tarball-dahil olduğu kadar iyi desteklenmeyen çok çeşitli kodlama stillerine sahip olduğu için üçüncü parti modüllerden hiçbirini içermiyor modüller (bu, Tartışma Noktalarını içeren Ana Dahil Etme Talebi / Raporlama hatalarında daha ayrıntılı olarak ele alınmaktadır nginx. Burada etkinleştirilen modüllerin tam listesi, burada nitelleştirdiğim paket açıklamasında:

    STANDART HTTP MODÜLLERİ: Çekirdek, Erişim, Yetki Temel, Otomatik İndeks, Tarayıcı, Charset, Boş GIF, FastCGI, Coğrafi, Gzip, Başlıklar, Dizin, Limit İstekleri, Limit Bölgesi, Günlük, Harita, Memcached, Proxy, Hakem, Yeniden Yazma, SCGI , Split Clients, SGK, Giriş, Kullanıcı Kimliği, UWSGI.

    İSTEĞE BAĞLI HTTP MODÜLLERİ: Toplama, Hata Ayıklama, GeoIP, Gzip Ön Sıkıştırma, HTTP Alt, Görüntü Filtresi, IPv6, Gerçek IP, Spdy, SSL, Saplama Durumu, Değiştirme, WebDAV, XSLT.

    POSTA MODÜLLERİ: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-lightmevcut en hafif tadıdır nginx. Evren deposunda ve onu kullanabilmeniz için ona sahip olmalısınız. -coreVeya içerisinde mevcut olan modüllerin büyük bir kısmını etkinleştirmez -full. Aynı zamanda üçüncü taraf modülleri içerir. İçinde bulunan modüller aşağıdaki gibidir:

    STANDART HTTP MODÜLLERİ: Çekirdek, Erişim, Yetki Temel, Otomatik İndeks, Karakter Kümesi, Boş GIF, FastCGI, Gzip, Başlıklar, İndeks, Günlük, Harita, Proxy, Yeniden Yaz, Yukarı Akış.

    İSTEĞE BAĞLI HTTP MODÜLLERİ: Kimlik Doğrulama İsteği, Hata Ayıklama, Gzip Ön Sıkıştırma, IPv6, Gerçek Ip, SSL, Saplama Durumu.

    ÜÇÜNCÜ TARAF MODÜLLERİ: Echo.

  • nginx-fullnginxpaketin daha zengin özellikli lezzetlerinden biridir . Muadilleri gibi light, Evren deposunda. Nginx kaynak tarballında standart ve isteğe bağlı olan modüllerin yanı sıra, nginx web sunucusunun yeteneklerini genişletmek için tasarlanmış birkaç tane daha üçüncü taraf modül içerir. Modülleri şöyle:

    STANDART HTTP MODÜLLERİ: Çekirdek, Erişim, Yetki Temel, Otomatik İndeks, Tarayıcı, Charset, Boş GIF, FastCGI, Coğrafi, Gzip, Başlıklar, Dizin, Limit İstekleri, Limit Bölgesi, Günlük, Harita, Memcached, Proxy, Hakem, Yeniden Yazma, SCGI , Split Clients, SGK, Giriş, Kullanıcı Kimliği, UWSGI.

    İSTEĞE BAĞLI HTTP MODÜLLERİ: Toplama, Kimlik Doğrulama İsteği, Hata Ayıklama, GeoIP, Gzip Ön Sıkıştırma, HTTP Alt, Görüntü Filtresi, IPv6, Gerçek IP, Spdy, SSL, Saplama Durumu, Değiştirme, WebDAV, XSLT.

    POSTA MODÜLLERİ: Mail Core, IMAP, POP3, SMTP, SSL.

    ÜÇÜNCÜ TARAF MODÜLLERİ: Auth PAM, DAV Ext, Echo, HTTP Değiştirme Filtresi, Upstream Fair Queue.

  • nginx-extrasnginxPaketin en zengin özellikli tadı . Ve onun fullve lightkardeşleri gibi , o da Evren deposunda. İçindeki tüm modülleri mümkün kılar nginx-fullama aynı zamanda (Perl modülü gibi) ek modüller ve nginx web sunucusunun özelliklerini daha da genişletmek için tasarlanmış birçok üçüncü taraf modülleri de içerir. Tam modül listesi aşağıdadır:

    STANDART HTTP MODÜLLERİ: Çekirdek, Erişim, Yetki Temel, Otomatik İndeks, Tarayıcı, Charset, Boş GIF, FastCGI, Coğrafi, Gzip, Başlıklar, Dizin, Limit İstekleri, Limit Bölgesi, Günlük, Harita, Memcached, Proxy, Hakem, Yeniden Yazma, SCGI , Split Clients, SGK, Giriş, Kullanıcı Kimliği, UWSGI.

    İSTEĞE BAĞLI HTTP MODÜLLERİ: Toplama, Kimlik Doğrulama İsteği, Hata Ayıklama, Gömülü Perl, FLV, GeoIP, Gzip Ön Sıkıştırma, Görüntü Filtresi, IPv6, MP4, Rastgele Dizin, Gerçek IP, Güvenli Bağlantı, Spdy, SSL, Stub Durumu, Değiştirme, WebDAV, XSLT.

    POSTA MODÜLLERİ: Mail Core, IMAP, POP3, SMTP, SSL.

    ÜÇÜNCÜ TARAF MODÜLLERİ: Auth PAM, Chunkin, DAV Ext, Yankı, Gömülü Lua, Süslü Dizin, HttpHeadersMore, HTTP Değiştirme Filtresi, http push, Nginx Geliştirme Seti, Yükleme İlerlemesi, Upstream Fair Queue.

  • nginx-naxsimevcut Naxsi Web Uygulaması Güvenlik Duvarı modülüne sahip olan nginx'in bir çeşididir. Evrende de var, ancak bu lezzet artık Debian bakımcıları tarafından desteklenmiyor ve 15.04 sürümüyle Ubuntu'dan tamamen çıkacak. Naxsi WAF modülüne ek olarak, aynı zamanda çok daha hafif bir modül kümesi içerir nginx-full. Modüllerin tam listesi aşağıdadır:

    STANDART HTTP MODÜLLERİ: Çekirdek, Erişim, Yetki Temel, Otomatik Dizin, Tarayıcı, Karakter Kümesi, Çekirdek, Boş GIF, FastCGI, Geo, Gzip, Başlıklar, Dizin, Limit İstekleri, Limit Bölgesi, Günlük, Harita, Memcached, Proxy, Hakem, Yeniden Yazma , Split Clients, SSI, Giriş, Kullanıcı Kimliği.

    İSTEĞE BAĞLI HTTP MODÜLLERİ: Hata Ayıklama, IPv6, Gerçek IP, SSL, Saplama Durumu.

    ÜÇÜNCÜ TARAF MODÜLLERİ: Naxsi, Cache Purge, Upstream Fair.


Tatlar Arasında Kaynak Kullanımı

Her ne kadar çeşitli lezzetler üzerinde çalıştırılmış herhangi bir kıyaslama olduğunun farkında olmasam da nginx, nginxkullandığınız sürümün ne kadar özellikli , o kadar çok kaynak kullanacağını varsaymak mantıklıdır .

Bununla birlikte, daha fazla modüle sahip bir bellek fahişesi olabilen Apache'den farklı olarak, modüller etkinleştirildiğinde nginxhala Apache ile karşılaştırıldığında daha fazla bellek yemiyor. (Bu açıklamanın istisnası naxsilezzettir. Bu lezzet, bir Web Sunucusu Güvenlik Duvarı ve bir web sunucusu olduğu için her zaman çok daha fazla kaynak tüketir.)

Onları bulursam bu cevaba ölçütler ekleyeceğim, ancak yine, birbirlerine göre çeşitli lezzetler için mevcut ölçütlerin farkında değilim. Ve hatta ben yoğun trafik yok koşmak siteleri olsa da, aralarında herhangi bir gerçek performans düşüşü farkında değil nginx-extras, nginx-fullya da nginx-lightbir PHP odaklı sitede.


Kanonik gerçekten. Yaşıyorum benim, bu çizgiyi görünce Bütün bu soru başladı error.logben yükledikten sonra nginx-extra: [info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf. RSS paylaşılıyor ve paylaşılmıyor, ancak yine de beni meraklandırdı. Dolayısıyla performanstan şüphe duyulur, ancak bu ikincildir.
muru

2
@muru pushmodül iyi bir miktar paylaşılan hafıza kullandığı ile tanınır. Bildiğim kadarıyla (ve bu konuda biraz hatalı olabilirim), paylaşılan hafıza, push sunucusunun kullanılabileceği web sunucusundaki tüm sitelerde kullanılıyor. Bununla birlikte, bu modül üçüncü taraf bir modüldür, bu yüzden onunla ilgili gerçek sorunların bakımcılarına yönlendirilmesi gerekir :)
Thomas Ward

1
Hayır, sorun yok. PPA'nızdaki yeni sürümlerden herhangi biri devreye giriyor backportsmu? Onlar muhtemelen aynı kaynaktan inşa edilir beri, Güvenlik ekibi tarafından uygulanan bir yama için nginx-corede kullanılabilir olacağını -fullve -extrasağ?
Muru

3
@muru Ne yazık ki, PPA'lardaki versiyonlardaki ambalajlar Ubuntu'dan ayrı olarak yapılır. Şu anda, paketi eski sürümlere geri yüklemek çok zorlaşıyor - sonuçta PPA'da yapıldı, çünkü Debian değişikliklerini Ubuntu değişiklikleriyle birleştirmekle uğraşmak zorunda kalmıyorum. Ana Katılım'dan bu yana, desteklemeyi araştırmadım, çünkü eski sürümlerde bulunanlarla eşleşmesi gereken birçok değişiklik olacaktı. (ve naxsi paketi, artık 15.04 sürümü desteklememektedir.)
Thomas Ward

2
@muru Ve evet, 14.04 ve sonrasında güvenlik güncellemeleri (veya standart sürüm güncellemeleri) olarak uygulanan her bir düzeltme eki , tümü aynı kod temelini çizdiklerinde, bu depodaki mevcut nginx-corediğer tatlar için nginxgeçerli olacaktır. ./configureFarklı modülleri etkinleştirmek veya devre dışı bırakmak için sadece farklı hatlara sahipler .
Thomas Ward

14

İşte esas olarak paketlerdeki açıklamalara dayanan çok üst düzey bir değerlendirme . (Her biri için örnek kullanım davaları sunma konusunda yetersiz kalacağım, ancak merakımı tatmin etmek için bu kadarını düşündüm, bu yüzden katkıda bulunabiliyorum.)

En küçüğünden en büyüğüne:

nginx-light: "temel sürüm"

Temel işlevsellik için minimal modül kümesi.

nginx-naxsi: "naxsi ile sürüm"

Minimal set, ayrıca sertleştirilmiş "Nginx Anti Xss ve Sql Injection" yapılandırması ve gerekli eklentileri.

nginx-core: "çekirdek sürüm"

Standart nginx dağıtımı, daha az üçüncü taraf modülleri.

Bu, Canonical tarafından desteklenen ilk nginx paketidir. Topluluk destekli "evren" deposu yerine Ubuntu "ana" deposunda. Duyuruyu görün "nginx-core şimdi Ubuntu Trusty 14.04 Main!" üzerinde güncelleyicisinin resmi olmayan (daha eski ve artık var olmayan) blogun bir arşiv veya üzerinde güncelleyicisinin gayri resmi blogunda eski yazının kopyası :

önceden kurulmuş olan nginx lezzetlerinin hiçbiri Ubuntu Main'e dahil değildir (nginx-light, nginx-full, nginx-ekstralar ve nginx-naxsi). Ubuntu Güvenlik Ekibi, üçüncü taraf modüllerin kodlamada çılgınca farklı olduğunu ve bu nedenle desteklenemeyeceğini söyledi.

Bu amaçla, Ana depoda bulunan nginx-core adında bir paket oluşturduk. Bu paket sadece stok nginx tarball ile birlikte verilen modülleri içerir. Bu pakete üçüncü taraf modülleri dahil etmiyoruz, sadece NGINX akış yukarı gelen modülleri.

nginx-full: "standart sürüm"

Sık kullanılan üçüncü taraf modülleri içeren standart nginx dağıtımı.

nginx-extras: "genişletilmiş sürüm"

Standart nginx dağıtımı ve nadiren kullanılan ve çoğalan modülleri içerir.


1
Bir şey: anladığım kadarıyla nginxApache gibi modüllerin etkinleştirilmesini desteklemiyor, bu yüzden kurulum nginx-extrasperformansı etkileyebilir mi?
muru

1
naxsi sadece -naxsi ve -extras'a eklenir, -core veya -full değil. -Extras'ı kullanmak muhtemelen performansa etki eder, kesinlikle daha hafif bir paketten daha fazla bellek tüketimi.
Steven K,

2
Bu güncel değil. Nginx paketi ile ilgili çok fazla etkime sahip olduğum için bu konuda daha eksiksiz bir açıklama yapacağım.
Thomas Ward

1
@ThomasW. Vay canına, "bakıcının blogu" ndan yukarıda alıntı yaptığım adam değil misin?
Steven K

1
@StevenKath Yeppers ve cevabımdaki o noktaya bile değildim. Kötü bir çerçeve parçası olduğu için Wordpress'in önceki blogunu çevrimdışı yapmak zorunda kaldım, ancak konu hala geçerli. Ubuntu'daki 'resmi koruyucu' olmaktan çok uzaktayım, ancak muhtemelen paketteki en fazla bakımı yapıyorum ve muhtemelen 'resmi olmayan koruyucu' olarak kabul ediyorum.
Thomas Ward
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.