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


nginx di Ubuntu adalah paket virtual yang disediakan oleh salah satu dari lima paket dari repositori resmi (setidaknya pada 14.04, default ke nginx-core, Aku 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 direkomendasikan untuk mereka?

Ini agak tua Halaman Wiki Debian memiliki perbandingan fitur antara extras, full, light dan naxsi, tetapi tidak disebutkan terbuat dari core. Berapa banyak yang telah berubah di 14.04?


sekunder Seperti yang saya pahami, nginx tidak mendukung runtime memungkinkan modul seperti Apache, jadi akan menginstal nginx-extras mempengaruhi kinerja?


62
2017-11-27 07:40


asal


Seseorang tampaknya telah melakukan versi yang lebih baru dari bagan perbandingan fitur dan membagikannya di dokumen Google: docs.google.com/spreadsheet/… - Steven K
@StevenKath membuat catatan bahwa dokumen itu hanya berdasarkan Debian. Itu tidak menyentuh pada nginx-core, dan tidak termasuk perubahan yang tidak stabil yang menghilangkan rasa naxsi (karena tidak mudah dipelihara). - Thomas Ward♦


Jawaban:


Sementara jawaban Steven menyentuh pada poin-poin kunci dan ringkasan yang sangat mendasar tentang apa yang setiap rasa, saya akan memberi Anda gambaran yang jauh lebih besar tentang perbedaan, saat saya mengerjakan kemasan cukup sedikit, dan rangkaian modul yang sangat berbeda di masing-masing sangat penting untuk jawaban yang baik. Uraian dasar tidak banyak menghasilkan keadilan untuk perbandingan. (Juga, pujian untuk Steven mengutip blog saya yang lebih lama (dan bahkan merujuk kepada saya sebagai 'pengelola'. Saya bermaksud untuk mem-port posting yang nginx-to-main ke blog saya yang lebih baru, tapi saya belum punya kesempatan .)

Juga perhatikan bahwa paket-paket terbaru untuk server web NGINX tersedia di NGINX PPA, dikelola oleh saya sendiri, yang berbasis hampir seluruhnya dari Debian. (PPA stabil (1.6.2 pada posting ini); Arus Utama PPA (1.7.7 pada pos ini, dengan 1.7.8 dijadwalkan mendarat pada 4 Desember 2014))


Rasa Berbeda dari nginx:

Rasa yang berbeda adalah semua versi yang sama nginxNamun, rasa tersebut diputuskan oleh pengelola paket Debian untuk menyediakan set fitur yang berbeda (untuk nginx-extras) serta fungsi-fungsi minimum yang 'paling' dan paling banyak fitur-efektif yang cenderung dimiliki server web dalam situs web. Alasan yang tepat untuk memilih fitur yang lain tidak diketahui oleh saya, namun dalam diskusi tambahan dengan salah satu pengelola Debian di IRC, sebuah pernyataan dibuat menegaskan penilaian awal saya, bahwa setiap varian dimaksudkan untuk menjadi serangkaian fitur yang berbeda untuk kasus penggunaan yang berbeda - light untuk sekumpulan fitur ringan yang memenuhi minimal hosting situs, full untuk set fitur yang lebih lengkap tanpa menyertakan ekstra yang lebih berat, dan extras untuk hampir semua yang ada di paket yang bisa dimasukkan di Ubuntu. naxsi, sebelum 15.04, adalah varian Naxsi khusus dengan hanya minimal modul di dalamnya, karena naxsi dapat menjadi sumber daya yang cukup intensif.

Seharusnya, menurut salah satu pengelola Debian NGINX yang secara teratur berkoordinasi dengan NGINX Hulu dalam percakapan pribadi yang saat ini saya tidak dapat mengirim log, NGINX 2.x akan memiliki dukungan modul yang dapat dimuat. Dalam hal ini, light, full, dan extras akan menjadi metapackages yang memanggil paket individu yang berisi setiap modul. Namun, tanggal ini menjadi kasus tidak diketahui, dan juga modul mana yang sebenarnya tidak akan mampu melakukan hal ini.

Seperti saat ini berdiri, the nginx paket virtual dirancang untuk menginstal salah satu versi yang tersedia. Secara default, sebagai nginx-core berada di utama dan kami akan senang jika individu menggunakannya lebih banyak, nginx-core adalah item pertama yang terlihat dan diinstal-dicoba dalam paket virtual. (Namun, itu nginx paket dapat mengandalkan salah satu dari rasa nginx, dan terutama ada untuk membuat instalasi sedikit lebih mudah bagi mereka yang tidak membutuhkan preferensi rasa tertentu)

Perincian terperinci dengan modul spesifik yang tersedia di setiap varian (berdasarkan dari Jelas debian/control mengajukan dan Tepercaya debian/control mengajukan (karena paket Naxsi telah dihapus di Vivid)) tersedia di bawah ini. Perhatikan bahwa ini tidak mencerminkan perubahan terbaru di Ubuntu, dan Anda harus merujuk ke deskripsi paket tersebut untuk memastikan Anda telah memperbarui, informasi akurat:

  • nginx-core adalah satu-satunya citarasa di bagian Utama dari Repositori Ubuntu, mulai 14.04, dan ada hanya di repositori Ubuntu (dan tidak ada dalam PPA atau Debian, dan tidak akan disertakan dalam Debian sebelumnya). Ini secara efektif identik dengan nginx-full rasa, tetapi tidak mengandung modul pihak ketiga. Alasan di balik penggunaan nginx-full sebagai dasar untuk varian ini adalah bahwa kami ingin menyediakan rangkaian modul inti yang relatif lengkap di binari yang dibangun, sambil mempertahankan modul pihak ketiga pada saat yang sama. Dengan demikian, tidak mengandung salah satu dari modul pihak ketiga, karena Tim Keamanan melakukan peninjauan kode dan menemukan bahwa modul pihak ketiga memiliki beragam gaya pengkodean yang tidak didukung dengan baik seperti nginx-tarball-termasuk modul (ini dibahas lebih mendalam di Permohonan Permintaan / Laporan Utama, yang berisi poin diskusi dan diskusi review lebih lanjut tentang apa yang bisa dimasukkan dalam Ubuntu Main for nginx). Daftar lengkap modul yang diaktifkan di sini ada dalam deskripsi paket, yang telah saya jelaskan di sini:

    STANDARD HTTP MODULES: Inti, Akses, Auth Basic, Indeks Otomatis, Browser,   Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Batasi Permintaan,   Batas Zone, Log, Peta, Memcached, Proxy, Referer, Rewrite, SCGI,   Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP OPSIONAL: Penambahan, Debug, GeoIP, Prompt Gzip, Sub HTTP,   Filter Gambar, IPv6, IP Real, Spdy, SSL, Stub Status, Substitusi, WebDAV,   XSLT.

    MAIL MODUL: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-light adalah rasa paling ringan nginx tersedia. Ini ada di repositori Universe dan Anda harus mengaktifkannya. Ini tidak memungkinkan sejumlah besar modul tersedia di -core atau -full. Ini juga berisi modul pihak ketiga. Modul yang tersedia di dalamnya adalah sebagai berikut:

    STANDARD HTTP MODULES: Inti, Akses, Auth Basic, Indeks Otomatis, Charset,   GIF Kosong, FastCGI, Gzip, Header, Indeks, Log, Peta, Proksi, Penulisan Ulang, Hulu.

    OPSI HTTP OPSIONAL: Permintaan Auth, Debug, Prompt Gzip, IPv6, Real   Ip, SSL, Status Stub.

    MODUL PIHAK KETIGA: Echo.

  • nginx-full adalah salah satu rasa yang lebih kaya fitur nginx paket. Seperti itu light padanannya, itu ada di repositori Universe. Hal ini memungkinkan sebagian besar inti termasuk modul yang standar dan opsional dalam tarball sumber from-nginx, serta beberapa modul pihak ketiga yang dirancang untuk memperluas kemampuan server web nginx. Modulnya adalah sebagai berikut:

    STANDARD HTTP MODULES: Inti, Akses, Auth Basic, Indeks Otomatis, Browser,   Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Batasi Permintaan,   Batas Zone, Log, Peta, Memcached, Proxy, Referer, Rewrite, SCGI,   Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP OPSIONAL: Tambahan, Permintaan Auth, Debug, GeoIP, Gzip   Precompression, Sub HTTP, Filter Gambar, IPv6, IP Real, Spdy, SSL, Status Stub,   Pergantian, WebDAV, XSLT.

    MAIL MODUL: Mail Core, IMAP, POP3, SMTP, SSL.

    PIHAK KETIGA MODUL: Auth PAM, DAV Ext, Echo, Filter Substitusi HTTP,   Antrean Pameran Hulu.

  • nginx-extras adalah rasa yang paling kaya akan fitur nginx paket. Dan seperti itu full dan light saudara, itu juga ada di gudang Universe. Ini memungkinkan semua modul di nginx-full tetapi juga termasuk modul tambahan (seperti modul Perl), dan banyak lagi modul pihak ketiga yang dirancang untuk lebih memperluas kemampuan dari server web nginx. Daftar modul lengkapnya adalah sebagai berikut:

    STANDARD HTTP MODULES: Inti, Akses, Auth Basic, Indeks Otomatis, Browser,   Charset, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks, Batasi Permintaan,   Batas Zone, Log, Peta, Memcached, Proxy, Referer, Rewrite, SCGI,   Membagi Klien, SSI, Hulu, ID Pengguna, UWSGI.

    MODUL HTTP OPSIONAL: Penambahan, Permintaan Auth, Debug, Perlan yang Disematkan, FLV,   GeoIP, Prompt Gzip, Filter Gambar, IPv6, MP4, Indeks Acak, IP Nyata,   Tautan Aman, Spdy, SSL, Status Stub, Pergantian, WebDAV, XSLT.

    MAIL MODUL: Mail Core, IMAP, POP3, SMTP, SSL.

    MODUL PIHAK KETIGA: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua,   Fancy Index, HttpHeadersMore, Filter Substitusi HTTP, push http,   Kit Pengembangan Nginx, Unggah Kemajuan, Antrean Pameran Hulu.

  • nginx-naxsi adalah varian dari nginx yang memiliki modul Firewall Aplikasi Web Naxsi yang tersedia. Itu juga di Universe, bagaimanapun rasa ini tidak lagi didukung oleh pengelola Debian, dan akan sepenuhnya diturunkan dari Ubuntu dengan rilis 15.04.  Selain modul WAF Naxsi, itu juga termasuk set modul yang jauh lebih ringan daripada nginx-full. Daftar lengkap modul di bawah ini:

    STANDARD HTTP MODULES: Inti, Akses, Auth Basic, Indeks Otomatis, Browser,   Charset, Core, GIF Kosong, FastCGI, Geo, Gzip, Header, Indeks,   Batasi Permintaan, Batas Zona, Log, Peta, Memcached, Proxy, Referer,   Menulis ulang, Membagi Klien, SSI, Hulu, ID Pengguna.

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

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


Penggunaan Sumber Daya Diantara Citarasa

Sementara saya tidak mengetahui adanya tolok ukur apa saja yang telah dijalankan pada berbagai macam rasa nginx, biasanya logis untuk berasumsi bahwa semakin banyak fitur yang mengaktifkan versi nginx Anda gunakan, semakin banyak sumber daya yang akan digunakan.

Namun, tidak seperti Apache yang bisa menjadi pelacur memori dengan lebih banyak modul diaktifkan, nginx masih tidak makan banyak memori dibandingkan dengan Apache ketika modul diaktifkan. (Pengecualian untuk pernyataan ini adalah naxsi rasa. Rasa itu selalu memakan lebih banyak sumber daya, karena ini adalah Firewall Aplikasi Web serta server web.)

Saya akan menambahkan tolok ukur untuk jawaban ini jika saya menemukannya, tetapi sekali lagi, saya tidak mengetahui tolok ukur apa pun yang ada untuk berbagai rasa terhadap satu sama lain. Dan meskipun situs yang saya jalankan tidak memiliki lalu lintas padat, saya belum melihat ada penurunan kinerja nyata nginx-extras, nginx-full, atau nginx-light di situs berbasis PHP.


85
2017-12-04 00:27



Memang kanonik. Seluruh pertanyaan ini dimulai ketika saya melihat baris ini di dalam saya error.log setelah 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 membuatku bertanya-tanya. Karenanya, kinerja meragukan, tapi itu sekunder. - muru
@muru itu push Modul ini terkenal karena menggunakan sedikit memori bersama. Sepengetahuan saya (dan saya mungkin sedikit salah dalam hal ini), bahwa memori bersama digunakan di semua situs di server web tempat modul push dapat digunakan. Namun, modul itu adalah modul pihak ketiga, jadi masalah nyata dengan itu harus diarahkan ke pengelola mereka :) - Thomas Ward♦
Nah, tidak ada masalah. Lakukan salah satu versi yang lebih baru dari PPA Anda backports? Dan karena mereka mungkin dibangun dari sumber yang sama, patch yang diterapkan oleh tim Keamanan untuk nginx-corejuga akan tersedia untuk -full dan -extrabenar? - muru
@muru Sayangnya, pengemasan dalam versi di AKP dilakukan secara terpisah dari Ubuntu. Saat ini, sangat sulit untuk membuat paket backport ke rilis yang lebih lama - ini akhirnya dilakukan di PPA karena saya tidak perlu mengacaukan perubahan Debian ke dalam perubahan Ubuntu. Sejak Inklusi Utama, saya belum menyelidiki backporting, karena akan ada banyak perubahan yang harus dijatuhkan untuk mencocokkan apa yang tersedia dalam rilis yang lebih lama. (dan paket naxsi turun membuat backporting 15.04 versi tidak mungkin sekarang). - Thomas Ward♦
@muru Dan ya, patch apa pun yang diterapkan sebagai pembaruan keamanan (atau sebagai pembaruan rilis standar) di 14.04 dan nanti akan diterapkan nginx-core serta rasa lainnya nginx tersedia di repositori itu, karena mereka semua menggambar pada basis kode yang sama. Mereka hanya berbeda ./configure baris untuk mengaktifkan atau menonaktifkan modul yang berbeda. - Thomas Ward♦


Ini adalah penilaian tingkat tinggi, terutama berdasarkan pada deskripsi dalam paket. (Saya akan gagal memberikan contoh kasus penggunaan untuk masing-masing, tapi saya pikir ini banyak untuk memuaskan rasa ingin tahu saya sehingga saya dapat berkontribusi dengan baik.)

Dari yang 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, mengurangi modul pihak ketiga.

Ini adalah paket nginx pertama yang didukung Canonical. Ada dalam repositori "utama" Ubuntu alih-alih repositori "alam semesta" yang didukung komunitas. Lihat pengumuman "nginx-core sekarang di Ubuntu Trusty 14.04 Main!" di arsip dari pengelola tidak resmi (lebih tua dan sekarang sudah tidak berfungsi) blog atau pada salinan posting lama di blog resmi pemelihara:

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

Untuk itu, kami membuat paket bernama nginx-core yang telah dimasukkan dalam repositori Utama. Paket ini hanya berisi modul yang dikirimkan dengan stock nginx tarball. 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.

ekstra-nginx: "versi tambahan"

Penerapan nginx standar ditambah beberapa modul yang jarang digunakan dan yang berukuran besar.


12
2017-12-03 23:25



Jadi jika saya punya core, yang naxsi bagian tertutup, kan? Perbedaan pihak ketiga / pihak pertama cukup untuk menjelaskan pemisahan paket, jadi saya kira jawaban use-case akan membutuhkan Kesalahan Servertingkat keahlian. - muru
Satu hal: seperti yang saya pahami, nginx tidak mendukung modul yang memungkinkan seperti Apache, jadi akan menginstal nginx-extras dapat memengaruhi kinerja? - muru
naxsi hanya termasuk dalam -naxsi dan -extras, bukan -core atau -full. Menggunakan -extras mungkin akan memiliki dampak kinerja, tentu lebih banyak konsumsi memori daripada paket yang lebih ringan. - Steven K
Ini sudah ketinggalan zaman. Saya akan posting pernyataan yang lebih lengkap tentang ini, karena saya memiliki banyak pengaruh yang berkaitan dengan paket nginx. - Thomas Ward♦
@StevenKath Yeppers, dan saya bahkan menyentuh titik itu pada jawaban saya. Saya harus mengambil offline blog sebelumnya karena Wordpress menjadi bagian dari kerangka jahat, tetapi intinya masih berdiri. Saya jauh dari 'pengelola resmi' di Ubuntu, tetapi saya mungkin melakukan perawatan paling banyak pada paket dan saya mungkin menganggap 'pengelola tidak resmi'. - Thomas Ward♦