nginx
di Ubuntu adalah paket virtual yang disediakan oleh salah satu dari lima paket dari repositori resmi (setidaknya pada 14,04, defaultnya adalah nginx-core
, saya percaya):
$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
nginx-core
nginx-extras
nginx-full
nginx-light
nginx-naxsi
Apa perbedaan antara paket-paket ini dan apa kasus penggunaan yang disarankan untuk mereka?
Agak lama ini Halaman Debian Wiki memiliki perbandingan fitur antara extras
, full
, light
dan naxsi
, tetapi tidak menyebutkan terbuat dari core
. Berapa banyak yang telah berubah di 14,04?
sekunder
Seperti yang saya pahami, nginx
tidak mendukung runtime yang mengaktifkan modul seperti Apache, jadi apakah menginstal nginx-extras
dampak kinerja?
Jawaban:
Sementara jawaban Steven menyentuh pada poin-poin utama dan ringkasan yang sangat mendasar tentang apa masing-masing rasa, saya akan memberikan Anda deskripsi yang jauh lebih besar tentang perbedaan, karena saya bekerja pada kemasannya sedikit, dan set modul yang sangat berbeda dalam masing-masing sangat penting untuk jawaban yang baik. Deskripsi dasar tidak melakukan banyak keadilan untuk perbandingan. (Juga, pujian untuk Steven mengutip blog saya yang lebih lama (dan bahkan menyebut saya sebagai 'pengelola'. Saya bermaksud untuk mengirim nginx-is-going-to-main post ke blog saya yang lebih baru, tetapi saya belum memiliki kesempatan .)
Juga perhatikan bahwa paket-paket terbaru untuk server web NGINX tersedia di NGINX PPA, yang dikelola oleh saya sendiri, hampir seluruhnya berasal dari Debian. ( PPA Stabil (1,6.2 pada posting ini); PPA Mainline (1,7,7 pada posting ini, dengan 1,7,8 dijadwalkan mendarat pada 4 Desember 2014))
Rasa Berbeda
nginx
:Citarasa yang berbeda semuanya versi yang sama
nginx
, namun citarasa tersebut diputuskan oleh pengelola paket Debian untuk menyediakan set fitur yang berbeda (untuknginx-extras
) serta minimum dan set fungsi 'lengkap' yang paling efektif dengan fitur yang server web cenderung telah digunakan di situs web. Alasan pasti mengapa suatu fitur dipilih daripada yang lain tidak diketahui oleh saya, namun dalam diskusi tambahan dengan salah satu pengelola Debian di IRC, sebuah pernyataan dibuat untuk menegaskan penilaian awal saya, bahwa setiap varian dimaksudkan untuk menjadi serangkaian fitur yang berbeda untuk kasus penggunaan yang berbeda -light
untuk serangkaian fitur ringan yang memenuhi minimum hosting situs,full
untuk serangkaian fitur yang lebih lengkap tanpa menyertakan tambahan yang jauh lebih berat, danextras
untuk hampir semua yang ada dalam paket itu bisa dimasukkan dalam Ubuntu.naxsi
, sebelum 15,04, adalah varian Naxsi khusus dengan hanya modul minimum di dalamnya, karena naxsi bisa menjadi sumber daya yang cukup intensif.Seharusnya, menurut salah satu pengelola Debian NGINX yang secara teratur berkoordinasi dengan Upstream NGINX dalam percakapan pribadi yang saat ini saya tidak dapat memposting log, NGINX 2.x akan memiliki dukungan modul yang dapat dimuat. Dalam hal ini,
light
,full
, danextras
akan menjadi metapackages yang memanggil paket individu yang berisi masing-masing modul. Tanggal ini menjadi kasus tidak diketahui, bagaimanapun juga, modul mana yang benar-benar akan mampu melakukan ini.Saat ini berdiri,
nginx
paket virtual dirancang untuk hanya menginstal salah satu versi yang tersedia. Secara default, sepertinginx-core
dalam main dan kami akan senang jika individu lebih menggunakannya,nginx-core
adalah item pertama yang dilihat dan diinstal-dicoba dalam paket virtual. (Namun,nginx
paket ini dapat mengandalkan salah satu dari rasanginx
, dan terutama ada di sana untuk membuat instalasi sedikit lebih mudah bagi mereka yang tidak memerlukan preferensi rasa tertentu)Rincian terperinci dengan modul-modul spesifik yang tersedia di setiap varian (berdasarkan dari file Vivid
debian/control
dan file Trustydebian/control
(karena paket Naxsi telah dihapus di Vivid)) tersedia di bawah ini. Perhatikan bahwa ini tidak mencerminkan perubahan terbaru di Ubuntu, dan Anda harus merujuk pada deskripsi paket tersebut untuk memastikan Anda telah memperbarui, informasi yang akurat :nginx-core
adalah satu-satunya rasa di bagian Utama dari Ubuntu Repositori, pada 14,04, dan hanya ada di repositori Ubuntu (dan tidak dalam PPA atau Debian, dan tidak akan dimasukkan dalam Debian sebelumnya). Secara efektif identik dengannginx-full
rasa, tetapi tidak mengandung modul pihak ketiga. Alasan di balik penggunaannginx-full
karena dasar untuk varian ini adalah bahwa kami ingin menyediakan satu set modul inti yang relatif penuh dalam biner yang dibangun, sambil tetap mengeluarkan modul pihak ketiga pada saat yang sama. Dengan demikian, tidak mengandung modul pihak ketiga, karena Tim Keamanan melakukan peninjauan terhadap kode dan menemukan bahwa modul pihak ketiga memiliki gaya pengkodean yang sangat beragam yang tidak didukung dengan baik seperti nginx-tarball-disertakan modul (ini dibahas lebih dalam di Permintaan Inklusi Utama / Laporan bug , yang berisi poin diskusi dan diskusi ulasan lebih lanjut mengenai apa yang bisa dimasukkan dalam Ubuntu Main fornginx
). Daftar lengkap modul yang diaktifkan di sini ada dalam deskripsi paket, yang telah saya pilih di sini:nginx-light
adalah rasa paling ringan yangnginx
tersedia. Itu ada dalam gudang Universe dan Anda harus mengaktifkannya untuk menggunakannya. Itu tidak memungkinkan sejumlah besar modul yang tersedia di-core
atau-full
. Ini juga berisi modul pihak ketiga. Modul yang tersedia di dalamnya adalah sebagai berikut:nginx-full
adalah salah satu rasa lebih kaya fitur daringinx
paket. Sepertilight
rekannya, ia ada di gudang Universe. Ini memungkinkan sebagian besar modul inti termasuk yang standar dan opsional dalam tarball source dari-nginx, serta beberapa modul pihak ketiga lainnya yang dirancang untuk memperluas kemampuan server web nginx. Modul-modulnya adalah sebagai berikut:nginx-extras
adalah rasa paling kaya fitur daringinx
paket. Dan seperti saudarafull
-light
saudaranya, itu juga ada dalam gudang Universe. Ini memungkinkan semua modul masuknginx-full
tetapi juga mencakup modul tambahan (seperti modul Perl), dan banyak lagi modul pihak ketiga yang dirancang untuk semakin memperluas kemampuan server web nginx. Daftar lengkap modul di bawah ini:nginx-naxsi
adalah varian dari nginx yang memiliki modul Firewall Aplikasi Web Naxsi. Ini juga ada di Universe, namun citarasa ini tidak lagi didukung oleh pengelola Debian, dan akan sepenuhnya dihapus dari Ubuntu dengan rilis 15,04. Selain modul WAF Naxsi, itu juga mencakup satu set modul yang jauh lebih ringan daripadanginx-full
. Daftar lengkap modul di bawah ini:Penggunaan Sumber Daya Di Antara Flavours
Meskipun saya tidak mengetahui adanya tolok ukur yang telah dijalankan pada berbagai rasa
nginx
, biasanya logis untuk mengasumsikan bahwa semakin banyak fitur yang mengaktifkan versi yangnginx
Anda gunakan, semakin banyak sumber daya yang akan digunakan.Namun, tidak seperti Apache yang bisa menjadi pelacur memori dengan lebih banyak modul yang diaktifkan,
nginx
masih tidak memakan banyak memori dibandingkan dengan Apache ketika modul diaktifkan. (Pengecualian untuk pernyataan ini adalahnaxsi
rasa. Rasa itu selalu memakan lebih banyak sumber daya, karena merupakan Aplikasi Web Firewall serta server web.)Saya akan menambahkan tolok ukur untuk jawaban ini jika saya menemukannya, tetapi sekali lagi, saya tidak mengetahui adanya tolok ukur yang ada untuk berbagai rasa terhadap satu sama lain. Dan meskipun situs yang saya jalankan tidak memiliki lalu lintas yang padat, saya tidak melihat ada penurunan kinerja nyata antara
nginx-extras
,nginx-full
ataunginx-light
di situs PHP-driven.sumber
error.log
setelah saya menginstalnginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. Ini dibagikan dan bukan RSS, tapi masih membuat saya bertanya-tanya. Karena itu kinerjanya diragukan, tapi itu hal kedua.push
modul ini terkenal karena menggunakan sedikit memori bersama yang baik. Sepengetahuan saya (dan saya mungkin sedikit salah tentang ini), bahwa memori bersama digunakan di semua situs di server web di mana modul push mungkin digunakan. Namun, modul itu adalah modul pihak ketiga, jadi masalah apa pun yang sebenarnya harus diarahkan ke pengelola mereka :)backports
? Dan karena mereka mungkin dibangun dari sumber yang sama, tambalan yang diterapkan oleh tim Keamanannginx-core
juga akan tersedia untuk-full
dan-extra
, kan?nginx-core
juga untuk citarasa lain yangnginx
tersedia dalam repositori itu, karena semuanya bercampur pada basis kode yang sama. Mereka hanya memiliki./configure
jalur berbeda untuk mengaktifkan atau menonaktifkan modul yang berbeda.Berikut ini penilaian tingkat sangat tinggi, terutama berdasarkan deskripsi dalam paket . (Saya akan gagal memberikan contoh penggunaan kasus untuk masing-masing, tapi saya menemukan ini untuk memuaskan rasa ingin tahu saya jadi saya mungkin juga berkontribusi.)
Dari terkecil hingga terbesar:
nginx-light: "versi dasar"
Set minimal modul untuk fungsionalitas dasar.
nginx-naxsi: "versi dengan naxsi"
Set minimal, ditambah konfigurasi "Nginx Anti Xss & Sql Injection" yang diperkeras dan plugin yang diperlukan.
nginx-core: "versi inti"
Penerapan nginx standar, kurang dari modul pihak ketiga.
Ini adalah paket nginx pertama yang didukung Canon. Itu ada di repositori "utama" Ubuntu dan bukannya repositori "semesta" yang didukung komunitas. Lihat pengumuman "nginx-core sekarang ada di Ubuntu Trusty 14.04 Main!" pada arsip blog pengelola tidak resmi (lama dan sekarang mati) atau pada salinan posting lama di blog tidak resmi pengelola :
nginx-full: "versi standar"
Penerapan nginx standar, termasuk modul pihak ketiga yang sering digunakan.
nginx-ekstra: "versi diperpanjang"
Penggunaan nginx standar ditambah beberapa modul yang jarang digunakan dan besar.
sumber
nginx
tidak mendukung modul yang diaktifkan seperti Apache, jadi apakah menginstalnginx-extras
mungkin memengaruhi kinerja?