nginx在 Ubuntu 上是由官方存储库中的五个软件包之一提供的虚拟软件包(至少从 14.04 开始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
Run Code Online (Sandbox Code Playgroud)
这些包之间有什么区别,推荐的用例是什么?
这个有点老的Debian Wiki页面之间有着功能比较extras,full,light和naxsi,但没有提到的core。14.04 有多少变化?
次要
据我所知,nginx不支持像 Apache 那样的模块的运行时启用,那么安装会nginx-extras影响性能吗?
Tho*_*ard 112
虽然史蒂文的回答触及了关键点和每种口味的非常基本的总结,但我会给你一个更大的差异描述,因为我在包装上做了很多工作,以及非常不同的模块集每个对于一个好的答案都是绝对关键的。基本描述对比较没有多大意义。(另外,感谢 Steven 引用我的旧博客(甚至称我为“维护者”。我打算将 nginx-is-coming-to-main 帖子移植到我的新博客,但我没有机会.)
另请注意,NGINX Web 服务器的最新软件包在 NGINX PPA 中可用,由我自己维护,几乎完全基于 Debian。(稳定 PPA(本文发布时为 1.6.2);主线 PPA(本文发布时为 1.7.7,1.7.8 预计于 2014 年 12 月 4 日登陆))
nginx:不同的风格都是 的相同版本nginx,但是风格是由 Debian 软件包维护者决定的,以提供不同的功能集(for nginx-extras)以及最低限度和最有效的“完整”功能集网络服务器往往在网站中使用。我不知道选择一个特性而不是另一个特性的确切原因,但是在与 IRC 上的一个 Debian 维护者的补充讨论中,做出了一个声明,确认了我的初步评估,每个变体都旨在成为一组不同的特性一个不同的用例 -light用于满足最低限度的站点托管的轻量级功能集,full用于更完整的功能集而不包括任何更重的附加功能,以及extras对于几乎可以包含在 Ubuntu 中的包中的所有内容。 naxsi在 15.04 之前,是 Naxsi 变体,特别是其中只有最少的模块,因为 naxsi 可能是相当资源密集型的。
据推测,根据 NGINX 的一位 Debian 维护者的说法,他经常在私人对话中与上游 NGINX 进行协调,我目前无法发布日志,NGINX 2.x 将具有可加载模块支持。在这种情况下,light、full和extras将成为调用包含每个模块的单个包的元包。然而,这种情况发生的日期尚不清楚,也不知道哪些模块实际上能够做到这一点。
就目前而言,nginx虚拟包旨在仅安装可用版本之一。默认情况下,就像nginx-core在 main 中一样,如果人们更多地使用它,我们会很nginx-core高兴,它是虚拟包中看到和尝试安装的第一个项目。(但是,该nginx包可以依赖 的任何一种风格nginx,主要是为了让那些不需要任何特定风格偏好的人更容易安装)
下面提供了每个变体中可用的特定模块的详细分类(基于Vividdebian/control文件和Trustydebian/control文件(因为 Naxsi 包已在 Vivid 中被删除))。 请注意,这并不反映 Ubuntu 中的最新更改,您应该参考这些包描述以确保您已更新、准确的信息:
nginx-core从 14.04 开始,它是 Ubuntu 存储库主要部分中的唯一风格,并且仅存在于 Ubuntu 存储库中(并且不在 PPA 或 Debian 中,并且永远不会包含在 Debian 中)。它实际上与nginx-full风味相同,但不包含任何第三方模块。使用背后的原因nginx-full作为此变体的基础,我们希望在构建的二进制文件中提供一组相对完整的核心模块,同时将第三方模块排除在外。因此,它不包含任何第三方模块,因为安全团队对代码进行了审查,发现第三方模块具有广泛不同的编码风格,不如包含的 nginx-tarball 得到很好的支持模块(这在Main Inclusion Request/Report bug 中进行了更深入的讨论,其中包含讨论点和关于 Ubuntu Main for 中可以包含的内容的进一步审查讨论nginx)。此处启用的模块的完整列表在包描述中,我在此处对其进行了挑剔:
标准 HTTP 模块:Core、Access、Auth Basic、Auto Index、Browser、Charset、Empty GIF、FastCGI、Geo、Gzip、Headers、Index、Limit Requests、Limit Zone、Log、Map、Memcached、Proxy、Referer、Rewrite、SCGI 、拆分客户端、SSI、上游、用户 ID、UWSGI。
可选 HTTP 模块:添加、调试、GeoIP、Gzip 预压缩、HTTP 子、图像过滤器、IPv6、真实 IP、Spdy、SSL、存根状态、替换、WebDAV、XSLT。
邮件模块:邮件核心、IMAP、POP3、SMTP、SSL。
nginx-light是nginx可用的最轻的味道。它位于 Universe 存储库中,您必须启用它才能使用它。它不会启用-core或 中可用的大量模块-full。它还包含第三方模块。其中可用的模块如下:
标准 HTTP 模块:Core、Access、Auth Basic、Auto Index、Charset、Empty GIF、FastCGI、Gzip、Headers、Index、Log、Map、Proxy、Rewrite、Upstream。
可选 HTTP 模块:身份验证请求、调试、Gzip 预压缩、IPv6、真实 Ip、SSL、存根状态。
第三方模块:Echo。
nginx-full是nginx包中功能更丰富的口味之一。与其light对应物一样,它位于 Universe 存储库中。它启用了大多数核心包含的模块,这些模块在 from-nginx 源 tarball 中是标准和可选的,以及一些旨在扩展 nginx Web 服务器功能的第三方模块。它的模块如下:
标准 HTTP 模块:Core、Access、Auth Basic、Auto Index、Browser、Charset、Empty GIF、FastCGI、Geo、Gzip、Headers、Index、Limit Requests、Limit Zone、Log、Map、Memcached、Proxy、Referer、Rewrite、SCGI 、拆分客户端、SSI、上游、用户 ID、UWSGI。
可选 HTTP 模块:添加、身份验证请求、调试、GeoIP、Gzip 预压缩、HTTP 子、图像过滤器、IPv6、真实 IP、Spdy、SSL、存根状态、替换、WebDAV、XSLT。
邮件模块:邮件核心、IMAP、POP3、SMTP、SSL。
第三方模块:Auth PAM、DAV Ext、Echo、HTTP 替换过滤器、上游公平队列。
nginx-extras是nginx包装中功能最丰富的风味。而像它full和light兄弟,它也是宇宙中的存储库。它启用了所有模块,nginx-full但还包括其他模块(例如 Perl 模块),以及更多旨在进一步扩展 nginx Web 服务器功能的第三方模块。其完整模块列表如下:
标准 HTTP 模块:Core、Access、Auth Basic、Auto Index、Browser、Charset、Empty GIF、FastCGI、Geo、Gzip、Headers、Index、Limit Requests、Limit Zone、Log、Map、Memcached、Proxy、Referer、Rewrite、SCGI 、拆分客户端、SSI、上游、用户 ID、UWSGI。
可选 HTTP 模块:添加、身份验证请求、调试、嵌入式 Perl、FLV、GeoIP、Gzip 预压缩、图像过滤器、IPv6、MP4、随机索引、真实 IP、安全链接、Spdy、SSL、存根状态、替换、WebDAV、XSLT。
邮件模块:邮件核心、IMAP、POP3、SMTP、SSL。
第三方模块:Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HttpHeadersMore, HTTP Substitution Filter, http push, Nginx Development Kit, Upload Progress, Upstream Fair Queue。
nginx-naxsi是 nginx 的变体,它具有可用的 Naxsi Web 应用程序防火墙模块。它也在 Universe 中,但是Debian 维护者不再支持这种风格,并且将在 15.04 版本中从 Ubuntu 中完全删除。 除了 Naxsi WAF 模块之外,它还包括一组比nginx-full. 完整的模块列表如下:
标准 HTTP 模块:Core、Access、Auth Basic、Auto Index、Browser、Charset、Core、Empty GIF、FastCGI、Geo、Gzip、Headers、Index、Limit Requests、Limit Zone、Log、Map、Memcached、Proxy、Referer、Rewrite 、拆分客户端、SSI、上游、用户 ID。
可选的 HTTP 模块:调试、IPv6、真实 IP、SSL、存根状态。
第三方模块:Naxsi、缓存清除、上游公平。
虽然我不知道已经上的各种口味运行任何基准测试的nginx,它通常是合乎逻辑的假设是,功能更使版本的nginx使用,更多的资源,它将使用。
但是,与启用更多模块的 Apache 可能是内存婊子不同,与启用nginx模块时的 Apache 相比,它仍然不会消耗那么多的内存。(此声明的例外是naxsi风味。这种风味总是会占用更多资源,因为它既是 Web 应用程序防火墙,也是 Web 服务器。)
如果我找到它们,我会在这个答案中添加基准,但同样,我不知道各种风格相互之间的任何现有基准。虽然我跑没有车水马龙的网站,我还没有发现有什么真正的性能降低nginx-extras,nginx-full或nginx-light在PHP驱动的网站。
Ste*_*n K 16
这是一个非常高级的评估,主要基于包中的描述。(我将无法为每个用例提供示例用例,但我想出了这么多来满足我的好奇心,所以我不妨贡献一下。)
从最小到最大:
基本功能的最小模块集。
最小集,加上强化的“Nginx Anti Xss & Sql Injection”配置及其所需的插件。
标准的nginx部署,少了第三方模块。
这是第一个 Canonical 支持的 nginx 包。它位于 Ubuntu“主”存储库中,而不是社区支持的“宇宙”存储库中。请参阅公告“nginx-core 现在在 Ubuntu Trusty 14.04 Main 中!” 在维护者的非官方(较旧且现已不复存在)博客的档案或维护者的非官方博客上的旧帖子的副本上:
Ubuntu Main(nginx-light、nginx-full、nginx-extras 和 nginx-naxsi)中不包含任何已经建立的 nginx 版本。Ubuntu 安全团队表示第三方模块在编码上有很大不同,因此无法支持。
为此,我们创建了一个名为 nginx-core 的包,它已包含在主存储库中。这个包只包含随 nginx tarball 一起提供的模块。我们没有在这个包中包含任何第三方模块,只包含来自 NGINX 上游的模块。
标准的 nginx 部署,包括常用的第三方模块。
标准的 nginx 部署加上几个不常用和较大的模块。
我根据https://salsa.debian.org/nginx-team/nginx/-/blob/master/debian/control的描述制作了一些表格(截至撰写本文时,最后更新时间为 2020 年 6 月 30 日) . 鉴于表格和它们所基于的描述是手工生成的,可能存在错误。
| 标准模块 | nginx核心 | nginx-full | nginx轻 | nginx-extras |
|---|---|---|---|---|
| 核 | ?? | ?? | ?? | ?? |
| 使用权 | ?? | ?? | ?? | ?? |
| 认证基础 | ?? | ?? | ?? | ?? |
| 自动索引 | ?? | ?? | ?? | ?? |
| 浏览器 | ?? | ?? | ?? | |
| 空的 GIF | ?? | ?? | ?? | ?? |
| 快速CGI | ?? | ?? | ?? | ?? |
| 地理 | ?? | ?? | ?? | |
| 限制连接 | ?? | ?? | ?? | |
| 限制请求 | ?? | ?? | ?? | |
| 地图 | ?? | ?? | ?? | ?? |
| 内存缓存 | ?? | ?? | ?? | |
| 代理 | ?? | ?? | ?? | ?? |
| 推荐人 | ?? | ?? | ?? | |
| 改写 | ?? | ?? | ?? | ?? |
| SCGI | ?? | ?? | ?? | ?? |
| 拆分客户 | ?? | ?? | ?? | |
| UWSGI | ?? | ?? | ?? | ?? |
| 可选模块 | nginx核心 | nginx-full | nginx轻 | nginx-extras |
|---|---|---|---|---|
| 添加 | ?? | ?? | ?? | |
| 身份验证请求 | ?? | ?? | ?? | ?? |
| 字符集 | ?? | ?? | ?? | ?? |
| 网络DAV | ?? | ?? | ?? | ?? |
| FLV | ?? | |||
| 地理IP | ?? | ?? | ?? | |
| 钢拉链 | ?? | ?? | ?? | |
| 压缩包 | ?? | ?? | ?? | ?? |
| Gzip 预压缩 | ?? | ?? | ?? | ?? |
| 标题 | ?? | ?? | ?? | ?? |
| HTTP/2 | ?? | ?? | ?? | ?? |
| 图像过滤器 | ?? | ?? | ?? | |
| 指数 | ?? | ?? | ?? | ?? |
| 日志 | ?? | ?? | ?? | ?? |
| MP4 | ?? | |||
| 嵌入式 Perl | ?? | |||
| 随机索引 | ?? | |||
| 真实IP | ?? | ?? | ?? | ?? |
| 片 | ?? | ?? | ?? | ?? |
| 安全链接 | ?? | |||
| SSI | ?? | ?? | ?? | ?? |
| 安全证书 | ?? | ?? | ?? | ?? |
| SSL 预读 | ?? | ?? | ?? | |
| 存根状态 | ?? | ?? | ?? | ?? |
| 代换 | ?? | ?? | ?? | |
| 线程池 | ?? | ?? | ?? | ?? |
| 上游的 | ?? | ?? | ?? | ?? |
| 用户身份 | ?? | ?? | ?? | |
| XSLT | ?? | ?? | ?? |
| 邮件模块 | nginx核心 | nginx-full | nginx轻 | nginx-extras |
|---|---|---|---|---|
| 邮件核心 | ?? | ?? | ?? | |
| 验证 HTTP | ?? | ?? | ?? | |
| 代理 | ?? | ?? | ?? | |
| 安全证书 | ?? | ?? | ?? | |
| IMAP | ?? | ?? | ?? | |
| POP3 | ?? | ?? | ?? | |
| SMTP | ?? | ?? | ?? |
| 溪流 | nginx核心 | nginx-full | nginx轻 | nginx-extras |
|---|---|---|---|---|
| 流核心 | ?? | ?? | ?? | |
| 地理IP | ?? | ?? | ?? | |
| 地理IP2 | ?? | ?? |
| 第三方模块 | nginx核心 | nginx-full | nginx轻 | nginx-extras |
|---|---|---|---|---|
| 验证PAM | ?? | ?? | ||
| 缓存清除 | ?? | |||
| DAV分机 | ?? | ?? | ||
| 回声 | ?? | ?? | ?? | |
| 花式指数 | ?? | |||
| 地理IP2 | ?? | ?? | ||
| 标题 更多 | ?? | |||
| 嵌入式 Lua | ?? | |||
| HTTP 替换 | ?? | ?? | ||
| 南昌 | ?? | |||
| 上传进度 | ?? | |||
| 上游公平队列 | ?? | ?? |
| 归档时间: |
|
| 查看次数: |
70277 次 |
| 最近记录: |