史蒂文(Steven)的答案涉及关键点以及每种口味的基本概述,但我会在包装方面做很多工作,并介绍其中非常不同的模块集,以提供对差异的更大描述。每个对于获得一个好的答案都是至关重要的。基本描述并不能使比较合理。(此外,赞扬史蒂文(Steven)引用了我的旧博客(甚至称我为“维护者”。我的意思是将nginx即将发布的主帖子移植到我的新博客中,但我没有机会)
另请注意,NGINX PPA中提供了NGINX Web服务器的最新软件包,这些软件包由我自己维护,几乎完全基于Debian。(稳定的PPA(截至本职位,目前为1.6.2;主线PPA(截至此职位,目前为1.7.7,预计1.7.8将于2014年12月4日着陆))
的不同风味nginx
:
不同的版本都是的同一版本nginx
,但是Debian软件包维护者决定了这些版本,以便提供不同的功能集(用于nginx-extras
)以及最低限度和最有效的“完整”功能集。 Web服务器通常已在网站中使用。我不知道选择某个功能的确切原因,但是在与IRC上Debian维护者之一的补充讨论中,我声明要确认我的初步评估,即每个变体都旨在成为一组不同的功能,一个不同的用例- light
用于一组轻量级功能,这些full
功能几乎可以满足最少的网站托管要求,可以提供更完整的功能集,而又不包含任何其他较重的功能,以及extras
适用于Ubuntu中可以包含的软件包中的几乎所有内容。 naxsi
15.04之前的版本是Naxsi变体,专门用于其中的最少模块,因为naxsi可能会占用大量资源。
据推测,NGINX的Debian维护者之一经常与Upstream NGINX进行私人对话,而我目前尚无法发布日志,因此我目前无法发布日志,NGINX 2.x将具有可加载模块支持。在这种情况下,light
,full
,和extras
将变得包含每个模块的单独的包装件,其调用的元数据包。但是,尚不清楚这种情况的发生日期,实际上也不知道哪个模块可以执行此操作。
按照目前的情况,该nginx
虚拟软件包旨在仅安装可用版本之一。默认情况下,就像nginx-core
主要一样,如果个人使用得更多,我们将很乐意nginx-core
在虚拟包中看到并尝试安装的第一件物品。(但是,该nginx
包装可以依赖的任何一种口味nginx
,并且主要是在包装上使那些不需要特定口味偏好的人安装起来更加容易)
下面提供了每个变体中可用的特定模块的详细细分(基于Vivid debian/control
文件和Trusty debian/control
文件(因为在Vivid中已删除了Naxsi软件包))。 请注意,这并不反映Ubuntu中最新的更改,因此您应该参考这些软件包描述以确保您已更新了准确的信息:
nginx-core
从14.04开始,它是Ubuntu信息库“主要”部分中的唯一样式,并且仅存在于Ubuntu信息库中(并且不存在于PPA或Debian中,也永远不会包含在Debian中)。它实际上与nginx-full
风味相同,但不包含任何第三方模块。使用背后的原因nginx-full
作为该变体的基础是,我们希望在内置的二进制文件中提供一套相对完善的核心模块,同时将第三方模块拒之门外。因此,它不包含任何第三方模块,因为安全团队对代码进行了审查,发现第三方模块具有广泛变化的编码样式,但不如包含nginx-tarball的那样很好地支持模块(在Main Inclusion Request / Report bug中对此进行了更深入的讨论,该bug包含讨论点并进一步回顾了有关Ubuntu Main for for Windows中可能包含的内容的讨论nginx
)。软件包说明中提供了此处启用的模块的完整列表,我在此处进行了介绍:
标准HTTP模块:核心,访问,身份验证基本,自动索引,浏览器,字符集,空GIF,FastCGI,地理位置,Gzip,标题,索引,限制请求,限制区域,日志,地图,Memcached,代理,引用,重写,SCGI ,拆分客户端,SSI,上游,用户ID,UWSGI。
可选的HTTP模块:添加,调试,GeoIP,Gzip预压缩,HTTP Sub,图像过滤器,IPv6,Real IP,Spdy,SSL,Stub状态,替代,WebDAV,XSLT。
邮件模块:邮件核心,IMAP,POP3,SMTP,SSL。
nginx-light
是最淡的口味nginx
。它在Universe资源库中,您必须启用它才能使用它。它不能够在大量可用的模块-core
或-full
。它还包含第三方模块。其中可用的模块如下:
标准HTTP模块:核心,访问,身份验证基本,自动索引,字符集,空GIF,FastCGI,Gzip,标头,索引,日志,映射,代理,重写,上游。
可选的HTTP模块:身份验证请求,调试,Gzip预压缩,IPv6,实际Ip,SSL,存根状态。
第三方模块:回声。
nginx-full
是nginx
包装中功能更丰富的口味之一。与它的light
对应项一样,它在Universe存储库中。它支持from-nginx源tarball中大多数标准和可选的核心模块,以及其他旨在扩展nginx Web服务器功能的第三方模块。它的模块如下:
标准HTTP模块:核心,访问,身份验证基本,自动索引,浏览器,字符集,空GIF,FastCGI,地理位置,Gzip,标题,索引,限制请求,限制区域,日志,地图,Memcached,代理,引用,重写,SCGI ,拆分客户端,SSI,上游,用户ID,UWSGI。
可选的HTTP模块:添加,验证请求,调试,GeoIP,Gzip预压缩,HTTP子目录,图像过滤器,IPv6,真实IP,间谍,SSL,存根状态,替代,WebDAV,XSLT。
邮件模块:邮件核心,IMAP,POP3,SMTP,SSL。
第三方模块:Auth PAM,DAV Ext,Echo,HTTP替代筛选器,上游公平队列。
nginx-extras
是nginx
包装中功能最丰富的风味。就像它full
和light
它的兄弟一样,它也位于Universe存储库中。它启用了其中的所有模块,nginx-full
但还包括其他模块(例如Perl模块),以及更多旨在进一步扩展nginx Web服务器功能的第三方模块。其完整模块列表如下:
标准HTTP模块:核心,访问,身份验证基本,自动索引,浏览器,字符集,空GIF,FastCGI,地理位置,Gzip,标题,索引,限制请求,限制区域,日志,地图,Memcached,代理,引用,重写,SCGI ,拆分客户端,SSI,上游,用户ID,UWSGI。
可选的HTTP模块:添加,验证请求,调试,嵌入式Perl,FLV,GeoIP,Gzip预压缩,图像过滤器,IPv6,MP4,随机索引,真实IP,安全链接,间谍,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模块:核心,访问,身份验证基本,自动索引,浏览器,字符集,核心,空GIF,FastCGI,Geo,Gzip,标题,索引,限制请求,限制区域,日志,地图,Memcached,代理,引用,重写,拆分客户端,SSI,上游,用户ID。
可选的HTTP模块:调试,IPv6,真实IP,SSL,存根状态。
第三方模块:纳克西(Naxsi),缓存清除,上游公平。
风味中的资源利用
尽管我不知道针对各种版本的都运行过任何基准测试nginx
,但通常合理的假设是,nginx
您使用的版本启用的功能越多,使用的资源就会越多。
但是,与Apache nginx
相比,启用更多模块可能会占用大量内存,与启用模块后的Apache相比,Apache不会占用太多内存。(该声明的例外是naxsi
风味。该风味总是吃很多资源,因为它既是Web应用程序防火墙又是Web服务器。)
如果找到基准,我会在其答案中添加基准,但同样,我不知道任何针对各种口味的基准都存在。虽然我跑没有车水马龙的网站,我还没有发现有什么真正的性能降低nginx-extras
,nginx-full
或nginx-light
在PHP驱动的网站。