Apa perbedaan antara paket inti, penuh, ekstra, dan ringan untuk nginx?

72

nginxdi 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, lightdan naxsi, tetapi tidak menyebutkan terbuat dari core. Berapa banyak yang telah berubah di 14,04?


sekunder Seperti yang saya pahami, nginxtidak mendukung runtime yang mengaktifkan modul seperti Apache, jadi apakah menginstal nginx-extrasdampak kinerja?

muru
sumber
1
Seseorang tampaknya telah melakukan versi yang lebih baru dari bagan perbandingan fitur dan membagikannya di Google docs: docs.google.com/spreadsheet/…
Steven K
1
@StevenKath membuat catatan bahwa dokumen ITULAH semata-mata didasarkan pada Debian. Itu tidak menyentuh inti nginx, dan tidak termasuk perubahan tidak stabil yang menghilangkan rasa naxsi (karena tidak sepele untuk mempertahankan).
Thomas Ward

Jawaban:

99

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 (untuk nginx-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 - lightuntuk serangkaian fitur ringan yang memenuhi minimum hosting situs, fulluntuk serangkaian fitur yang lebih lengkap tanpa menyertakan tambahan yang jauh lebih berat, danextrasuntuk 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, dan extrasakan 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, nginxpaket virtual dirancang untuk hanya menginstal salah satu versi yang tersedia. Secara default, seperti nginx-coredalam main dan kami akan senang jika individu lebih menggunakannya, nginx-coreadalah item pertama yang dilihat dan diinstal-dicoba dalam paket virtual. (Namun, nginxpaket ini dapat mengandalkan salah satu dari rasa nginx, 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 Vividdebian/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-coreadalah 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 dengan nginx-fullrasa, tetapi tidak mengandung modul pihak ketiga. Alasan di balik penggunaannginx-fullkarena 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 for nginx). Daftar lengkap modul yang diaktifkan di sini ada dalam deskripsi paket, yang telah saya pilih di sini:

    MODUL HTTP STANDAR: Inti, Akses, Dasar Auth, Indeks Otomatis, Browser, Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Permintaan Batas, Zona Batas, Log, Peta, Memcached, Proxy, Referer, Referer, Penulisan Ulang, SCGI , Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP PILIHAN: Penambahan, Debug, GeoIP, Prompresi Gzip, Sub HTTP, Filter Gambar, IPv6, IP Asli, Spdy, SSL, Status Stub, Substitusi, WebDAV, XSLT.

    MODUL MAIL: Inti Surat, IMAP, POP3, SMTP, SSL.

  • nginx-lightadalah rasa paling ringan yang nginxtersedia. Itu ada dalam gudang Universe dan Anda harus mengaktifkannya untuk menggunakannya. Itu tidak memungkinkan sejumlah besar modul yang tersedia di -coreatau -full. Ini juga berisi modul pihak ketiga. Modul yang tersedia di dalamnya adalah sebagai berikut:

    MODUL HTTP STANDAR: Inti, Akses, Dasar Auth, Indeks Otomatis, Charset, GIF Kosong, FastCGI, Gzip, Tajuk, Indeks, Log, Peta, Proksi, Tulis Ulang, Hulu.

    MODUL HTTP OPSIONAL: Permintaan Auth, Debug, Precompression Gzip, IPv6, Real Ip, SSL, Status Stub.

    MODUL PIHAK KETIGA: Echo.

  • nginx-fulladalah salah satu rasa lebih kaya fitur dari nginxpaket. Seperti lightrekannya, 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:

    MODUL HTTP STANDAR: Inti, Akses, Dasar Auth, Indeks Otomatis, Browser, Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Permintaan Batas, Zona Batas, Log, Peta, Memcached, Proxy, Referer, Referer, Penulisan Ulang, SCGI , Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP OPSIONAL: Penambahan, Permintaan Auth, Debug, GeoIP, Prompresi Gzip, Sub HTTP, Filter Gambar, IPv6, IP Asli, Spdy, SSL, Status Stub, Substitusi, WebDAV, XSLT.

    MODUL MAIL: Inti Surat, IMAP, POP3, SMTP, SSL.

    MODUL PIHAK KETIGA: Auth PAM, DAV Ext, Echo, Filter Substitusi HTTP, Antrian Hulu Adil.

  • nginx-extrasadalah rasa paling kaya fitur dari nginxpaket. Dan seperti saudara full- lightsaudaranya, itu juga ada dalam gudang Universe. Ini memungkinkan semua modul masuk nginx-fulltetapi 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:

    MODUL HTTP STANDAR: Inti, Akses, Dasar Auth, Indeks Otomatis, Browser, Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Permintaan Batas, Zona Batas, Log, Peta, Memcached, Proxy, Referer, Referer, Penulisan Ulang, SCGI , Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP OPSIONAL: Penambahan, Permintaan Auth, Debug, Embedded Perl, FLV, GeoIP, Gzip Precompression, Filter Gambar, IPv6, MP4, Indeks Acak, IP Asli, Tautan Aman, Spdy, SSL, Status Stub, Substitusi, WebDAV, XSLT.

    MODUL MAIL: Inti Surat, IMAP, POP3, SMTP, SSL.

    MODUL PIHAK KETIGA: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HttpHeadersMore, Filter Substitusi HTTP, http push, Kit Pengembangan Nginx, Unggahan Progres, Antrian Upload Hulu.

  • nginx-naxsiadalah 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 daripada nginx-full. Daftar lengkap modul di bawah ini:

    MODUL HTTP STANDAR: Core, Access, Auth Basic, Auto Index, Browser, Charset, Core, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Permintaan Batas, Zona Batas, Log, Peta, Memcached, Proxy, Referer, Penulisan Ulang , Membagi Klien, SSI, Hulu, ID Pengguna.

    MODUL HTTP OPSIONAL: Debug, IPv6, IP Asli, SSL, Status Stub.

    MODUL PIHAK KETIGA: Naxsi, Cache Purge, Upstream Fair.


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 yang nginxAnda gunakan, semakin banyak sumber daya yang akan digunakan.

Namun, tidak seperti Apache yang bisa menjadi pelacur memori dengan lebih banyak modul yang diaktifkan, nginxmasih tidak memakan banyak memori dibandingkan dengan Apache ketika modul diaktifkan. (Pengecualian untuk pernyataan ini adalah naxsirasa. 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-fullatau nginx-lightdi situs PHP-driven.

Thomas Ward
sumber
Canonical memang. Seluruh pertanyaan ini dimulai ketika aku melihat baris ini di saya error.logsetelah saya menginstal nginx-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.
muru
2
@muru pushmodul 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 :)
Thomas Ward
1
Nah, tidak ada masalah. Apakah ada versi yang lebih baru dari PPA Anda backports? Dan karena mereka mungkin dibangun dari sumber yang sama, tambalan yang diterapkan oleh tim Keamanan nginx-corejuga akan tersedia untuk -fulldan -extra, kan?
muru
3
@muru Sayangnya, pengemasan dalam versi dalam PPA dilakukan secara terpisah dari Ubuntu. Saat ini, sangat sulit untuk meng-backport paket ke rilis yang lebih lama - akhirnya dilakukan di PPA karena saya tidak perlu repot dengan menggabungkan perubahan Debian ke dalam perubahan Ubuntu. Sejak Inklusi Utama, saya belum menyelidiki backporting, karena akan ada banyak perubahan yang harus dibatalkan agar sesuai dengan apa yang tersedia di rilis yang lebih lama. (dan tetes paket naxsi membuat backporting versi 15.04 tidak mungkin sekarang).
Thomas Ward
2
@muru Dan ya, setiap tambalan yang diterapkan sebagai pembaruan keamanan (atau sebagai pembaruan rilis standar) pada 14,04 dan yang lebih baru akan berlaku nginx-corejuga untuk citarasa lain yang nginxtersedia dalam repositori itu, karena semuanya bercampur pada basis kode yang sama. Mereka hanya memiliki ./configurejalur berbeda untuk mengaktifkan atau menonaktifkan modul yang berbeda.
Thomas Ward
14

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 :

tidak ada rasa nginx yang sudah mapan yang termasuk dalam Ubuntu Main (nginx-light, nginx-full, nginx-extras, dan nginx-naxsi). Tim Keamanan Ubuntu telah mengatakan bahwa modul pihak ketiga sangat berbeda dalam pengkodean dan karena itu tidak dapat didukung.

Untuk itu, kami membuat paket yang disebut nginx-core yang telah dimasukkan dalam repositori Utama. Paket ini hanya berisi modul-modul yang dikirimkan bersama tarball stock nginx. Kami tidak menyertakan modul pihak ketiga dengan paket ini, hanya modul yang berasal dari NGINX hulu.

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.

Steven K.
sumber
1
Satu hal: seperti yang saya pahami, nginxtidak mendukung modul yang diaktifkan seperti Apache, jadi apakah menginstal nginx-extrasmungkin memengaruhi kinerja?
muru
1
naxsi hanya termasuk dalam -naxsi dan -extras, bukan -core atau -full. Menggunakan -extra mungkin akan memiliki dampak kinerja, tentu saja lebih banyak konsumsi memori daripada paket yang lebih ringan.
Steven K
2
Ini sudah ketinggalan zaman. Saya akan memposting pernyataan yang lebih lengkap tentang ini, karena saya memiliki banyak pengaruh sehubungan dengan paket nginx.
Thomas Ward
1
@ Thomas. Wow, bukankah kamu cowok yang saya kutip di atas dari "blog pengelola"?
Steven K
1
@ SevenKath Yeppers, dan saya bahkan menyentuh titik itu pada jawaban saya. Saya harus menjadikan blog sebelumnya offline karena Wordpress menjadi kerangka kerja yang jahat, tetapi intinya tetap ada. Saya jauh dari 'pengelola resmi' di Ubuntu, tetapi saya mungkin melakukan paling banyak pemeliharaan pada paket dan saya mungkin dianggap sebagai 'pengelola tidak resmi'.
Thomas Ward