nginx
na Ubuntu to pakiet wirtualny udostępniany przez jeden z pięciu pakietów z oficjalnych repozytoriów (przynajmniej od 14.04, domyślnie domyślnie nginx-core
:
$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
nginx-core
nginx-extras
nginx-full
nginx-light
nginx-naxsi
Jaka jest różnica między tymi pakietami i jakie są zalecane dla nich przypadki użycia?
To nieco stary strona Debian Wiki ma porównania między fabularny extras
, full
, light
i naxsi
, ale nie wspomina się core
. Ile zmieniło się w 14.04?
wtórne
Jak rozumiem, nginx
nie obsługuje włączania w czasie wykonywania modułów takich jak Apache, więc czy instalacja nginx-extras
wpływałaby na wydajność?
Odpowiedzi:
Podczas gdy odpowiedź Stevena dotyczy kluczowych punktów i bardzo podstawowego podsumowania tego, czym jest każdy smak, dam ci znacznie szerszy opis różnic, ponieważ dość dużo pracuję nad opakowaniem i bardzo różnymi zestawami modułów w każdy z nich ma absolutnie kluczowe znaczenie dla dobrej odpowiedzi. Podstawowe opisy niewiele oddają porównanie. (Również podziękowania dla Stevena cytujące mój starszy blog (a nawet odnoszące się do mnie jako „opiekuna”. Chciałem przenieść post z Nginx na stronę główną na moim nowym blogu, ale nie miałem okazji .)
Zauważ też, że najnowsze pakiety dla serwera sieciowego NGINX są dostępne w PPA NGINX, utrzymywanym przeze mnie, opartym prawie całkowicie na Debianie. ( Stabilna PPA (1.6.2 od tego postu); Główna linia PPA (1.7.7 od tego postu, z 1.7.8 planowane do wylądowania 4 grudnia 2014 r.))
Różne smaki
nginx
:Różne smaki są tą samą wersją
nginx
, jednak o smakach zdecydowali opiekunowie pakietów Debian w celu zapewnienia różnych zestawów funkcji (dlanginx-extras
), a także absolutnego minimum i najbardziej efektywnego „pełnego” zestawu funkcji, które serwery internetowe zwykle używają na stronach internetowych. Dokładny powód, dla którego wybrano funkcję nad inną, nie jest mi znany, jednak w dodatkowej dyskusji z jednym z opiekunów Debiana na IRC wydano oświadczenie potwierdzające moją wstępną ocenę, że każdy wariant miał być innym zestawem funkcji dla inny przypadek użycia -light
dla lekkiego zestawu funkcji, który spełnia absolutnie minimum hostingu witryny,full
dla pełniejszego zestawu funkcji bez uwzględnienia znacznie cięższych dodatków orazextras
dla prawie wszystkiego, co jest w pakiecie, który może być zawarty w Ubuntu.naxsi
, przed 15.04, był wariantem Naxsi, w którym znajdowało się tylko minimum modułów, ponieważ naxsi wymagało dość dużych zasobów.Podobno, według jednego z opiekunów Debiana NGINX, który regularnie koordynuje z Upstream NGINX w prywatnej rozmowie, o której obecnie nie mogę publikować logów, NGINX 2.x będzie obsługiwał moduł ładowalny. W takim przypadku
light
,full
iextras
staną się metapakiety które wzywają poszczególnych pakietów zawierających każdy moduł. Data, od której tak się dzieje, nie jest jednak znana, ani które moduły faktycznie będą w stanie to zrobić.W obecnej postaci
nginx
pakiet wirtualny został zaprojektowany tak, aby po prostu zainstalować jedną z dostępnych wersji. Domyślnie, jaknginx-core
to jest w głównej części i chcielibyśmy, aby użytkownicy korzystali z niej częściej,nginx-core
jest to pierwszy widoczny element i próba instalacji w pakiecie wirtualnym. (Jednaknginx
opakowanie może polegać na dowolnym smakunginx
i ma głównie na celu ułatwienie instalacji dla tych, którzy nie potrzebują żadnych konkretnych preferencji dotyczących smaku)Szczegółowy podział na poszczególne moduły dostępne w każdym wariancie (na podstawie pliku Vivid
debian/control
i pliku Trustydebian/control
(ponieważ pakiety Naxsi zostały usunięte w Vivid)) jest dostępny poniżej. Pamiętaj, że nie odzwierciedla to najbardziej aktualnych zmian w Ubuntu i powinieneś zapoznać się z tymi opisami pakietów, aby upewnić się, że zaktualizowałeś dokładne informacje :nginx-core
jest jedynym smakiem w sekcji głównej repozytoriów Ubuntu, począwszy od 14.04, i istnieje tylko w repozytoriach Ubuntu (i nie znajduje się w PPA ani w Debianie i nie będzie nigdy dołączany do Debiana). Jest efektywnie identyczny zenginx-full
smakiem, ale nie zawiera żadnych modułów stron trzecich. Uzasadnienie użycianginx-full
ponieważ podstawą tego wariantu było to, że chcieliśmy zapewnić stosunkowo pełnoprawny zestaw modułów podstawowych w wbudowanych plikach binarnych, jednocześnie utrzymując moduły innych producentów w tym samym czasie. Jako taki nie zawiera żadnych modułów innych firm, ponieważ Zespół ds. Bezpieczeństwa dokonał przeglądu kodu i stwierdził, że moduły innych firm mają bardzo różne style kodowania, które nie są tak ładnie obsługiwane, jak dołączony pakiet nginx-tarball moduły (jest to omówione bardziej szczegółowo w błędzie Main Inclusion Request / Report , który zawiera punkty dyskusji i dalsze przeglądy dyskusji na temat tego, co może być zawarte w Ubuntu Mainnginx
). Pełna lista włączonych tutaj modułów znajduje się w opisie pakietu, który tutaj wybrałem:nginx-light
to najlżejszynginx
dostępny smak . Znajduje się w repozytorium Wszechświata i musisz mieć to włączone, aby z niego korzystać. Nie włącza dużej liczby modułów dostępnych w-core
lub-full
. Zawiera również moduły innych firm. Dostępne w nim moduły to:nginx-full
jest jednym z bogatszych w funkcje smaków tegonginx
pakietu. Podobnie jak jegolight
odpowiednik, znajduje się w repozytorium Wszechświata. Umożliwia większość podstawowych modułów, które są standardowe i opcjonalne w źródłowym pliku archiwalnym z nginx, a także kilka innych modułów innych firm zaprojektowanych w celu rozszerzenia możliwości serwera WWW nginx. Jego moduły są następujące:nginx-extras
jest najbardziej bogatym w funkcje smakiemnginx
pakietu. I podobnie jak jegofull
andlight
braci, to też jest w repozytorium Universe. Umożliwia wszystkie moduły,nginx-full
ale zawiera również dodatkowe moduły (takie jak moduł Perl) i wiele innych modułów innych firm, zaprojektowanych w celu dalszego rozszerzenia możliwości serwera WWW nginx. Pełna lista modułów znajduje się poniżej:nginx-naxsi
jest wariantem nginx, który ma dostępny moduł zapory aplikacji sieciowych Naxsi. To także jest w Universe, jednak ten smak nie jest już obsługiwany przez opiekunów Debiana i zostanie całkowicie usunięty z Ubuntu wraz z wydaniem 15.04. Oprócz modułu WAF Naxsi zawiera również znacznie lżejszy zestaw modułów niżnginx-full
. Pełna lista modułów znajduje się poniżej:Wykorzystanie zasobów wśród smaków
Chociaż nie jestem świadomy żadnych testów porównawczych dla różnych smaków
nginx
, zazwyczaj logiczne jest założenie, że im bardziej korzystasz z funkcji wersji,nginx
której używasz, tym więcej zasobów będzie zużywał.Jednak w przeciwieństwie do Apache, który może być dziwką z pamięcią z włączoną większą liczbą modułów,
nginx
nadal nie zjada tyle pamięci w porównaniu z Apache, gdy moduły są włączone. (Wyjątkiem od tego stwierdzenia jestnaxsi
smak. Ten smak zawsze zjada o wiele więcej zasobów, ponieważ jest to Zapora aplikacji sieci Web, a także serwer WWW).Dodam testy porównawcze do tej odpowiedzi, jeśli je znajdę, ale ponownie nie jestem świadomy żadnych istniejących testów porównawczych dla różnych smaków przeciwko sobie. I chociaż ja prowadzonych witryn nie mają duży ruch, nie zauważyłem żadnych realnych spadek wydajności pomiędzy
nginx-extras
,nginx-full
lubnginx-light
na stronie PHP napędzane.źródło
error.log
po zainstalowaniunginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. Jest udostępniany, a nie RSS, ale wciąż mnie zastanawiał. Stąd wydajność budzi wątpliwości, ale to kwestia drugorzędna.push
moduł jest dobrze znany z używania dużej ilości pamięci współdzielonej. Według mojej wiedzy (i mogę się w tym nieco mylić) ta pamięć współdzielona jest używana we wszystkich witrynach na serwerze sieci Web, na których można użyć modułu push. Jednak ten moduł jest modułem strony trzeciej, więc wszelkie rzeczywiste problemy z nim powinny być kierowane do ich opiekunów :)backports
? A ponieważ są one prawdopodobnie zbudowane z tego samego źródła, łatka zastosowana przez zespół ds. Bezpieczeństwanginx-core
również będzie dostępna dla-full
i-extra
, prawda?nginx-core
wersjach będą miały zastosowanie, podobnie jak inne smakinginx
dostępne w tym repozytorium, ponieważ wszystkie oparte są na tej samej podstawie kodu. Mają po prostu różne./configure
linie, aby włączyć lub wyłączyć różne moduły.Oto ocena bardzo wysokiego poziomu, oparta głównie na opisach w paczkach . (Mam zamiar nie podać przykładowych przypadków użycia dla każdego, ale doszedłem do tego, aby zaspokoić moją ciekawość, więc równie dobrze mogę to wnieść).
Od najmniejszej do największej:
nginx-light: „wersja podstawowa”
Minimalny zestaw modułów dla podstawowej funkcjonalności.
nginx-naxsi: „wersja z naxsi”
Minimalny zestaw, a także wzmocniona konfiguracja „Nginx Anti Xss & Sql Injection” oraz wymagane wtyczki.
nginx-core: „wersja podstawowa”
Standardowe wdrożenie nginx, z wyłączeniem modułów innych firm.
To pierwszy pakiet nginx obsługiwany przez Canonical. Znajduje się w „głównym” repozytorium Ubuntu zamiast w obsługiwanym przez społeczność repozytorium „wszechświatowym”. Zobacz ogłoszenie „nginx-core jest teraz w Ubuntu Trusty 14.04 Main!” na archiwum nieoficjalnego (starszego i już nieistniejącego) bloga opiekuna lub na kopii starego postu na nieoficjalnym blogu opiekuna :
nginx-full: „wersja standardowa”
Standardowe wdrożenie nginx, w tym często używane moduły innych firm.
Dodatki nginx: „wersja rozszerzona”
Standardowe wdrożenie nginx plus kilka rzadko używanych i dużych modułów.
źródło
nginx
nie obsługuje włączania modułów tak jak Apache, więc czy instalacjanginx-extras
mogłaby mieć wpływ na wydajność?