Ubuntu上的nginx是由官方存储库中的五个软件包之一提供的虚拟软件包(至少截至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

这些软件包之间的区别是什么?它们的推荐用例是什么?

这个有点旧的Debian Wiki page在extras,full,light和naxsi之间有一个功能比较,但没有提到核心.它在14.04有多少变化?

次要
据我了解,nginx不支持像Apache这样的模块的运行时启用,那么安装nginx-extras会影响性能吗?


解决方法:

虽然史蒂文的答案涉及关键点以及每种口味的基本概要,但我会给你一个更大的差异描述,因为我在包装上工作了很多,而且模块的组合非常不同.每个人都对一个好的答案绝对至关重要.基本描述对比较没有多大公平. (另外,对史蒂文的称赞引用了我的旧博客(甚至将我称为’维护者’.我的意思是将nginx即将到来的帖子移植到我的新博客上,但我还没有机会.)

另请注意,NGINX Web服务器的最新软件包可在我自己维护的NGINX PPA中获得,几乎完全基于Debian. (Stable PPA(截至本文时为1.6.2); Mainline PPA(截至本文职位为1.7.7,1.7.8将于2014年12月4日登陆))

nginx的不同风味:

不同的风格都是nginx的相同版本,但是Debian软件包维护者决定了这些风格,以便提供不同的功能集(用于nginx-extras)以及最小的功能和最有效的“完整”功能. Web服务器倾向于在网站中使用的一组功能.我不知道选择一个特征而不是另一个特征的确切原因,但是在与IRC上的一个Debian维护者的补充讨论中,一个声明肯定了我的初步评估,即每个变体旨在成为一组不同的特征.一个不同的用例 – 轻量级的功能,满足最少的网站托管,完整的功能,不包括任何更重的额外功能,以及可用于包装中的几乎所有内容的附加功能包含在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 fileTrusty debian/control file(因为Nividsi软件包已在Vivid中删除))如下所示.请注意,这并不反映Ubuntu中最新的更改,您应该参考这些包描述以确保您拥有更新,准确的信息:

nginx-core是Ubuntu存储库主要部分中唯一的风格,截至14.04,并且仅存在于Ubuntu存储库中(并且不在PPA或Debian中,并且不会包含在Debian中).它实际上与nginx-full flavor相同,但不包含任何第三方模块.使用nginx-full作为此变体的基础的原因是我们希望在构建的二进制文件中提供相对完整的核心模块集,同时保留第三方模块.因此,它不包含任何第三方模块,因为安全团队对代码进行了审查,发现第三方模块的编码风格差异很大,不像nginx-tarball那样得到很好的支持.模块(这将在Main Inclusion Request/Report bug中进行更深入的讨论,其中包含讨论点和进一步的讨论,讨论可以包含在Ubuntu Main for nginx中的内容).这里启用的模块的完整列表在包描述中,我在这里提到:

STANDARD HTTP MODULES: 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,
Split Clients, SSI, Upstream, User ID, UWSGI.

OPTIONAL HTTP MODULES: Addition, Debug, GeoIP, Gzip Precompression, HTTP Sub,
Image Filter, IPv6, Real IP, Spdy, SSL, Stub Status, Substitution, WebDAV,
XSLT.

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

nginx-light是nginx最轻的味道.它位于Universe存储库中,您必须启用它才能使用它.它不能在-core或-full中启用大量可用模块.它还包含第三方模块.其中可用的模块如下:

STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Charset,
Empty GIF, FastCGI, Gzip, Headers, Index, Log, Map, Proxy, Rewrite, Upstream.

OPTIONAL HTTP MODULES: Auth Request, Debug, Gzip Precompression, IPv6, Real
Ip, SSL, Stub Status.

THIRD PARTY MODULES: Echo.

nginx-full是nginx包中功能更丰富的一种.就像它的轻型对应物一样,它位于Universe存储库中.它支持from-nginx源代码tarball中标准和可选的大多数核心模块,以及几个旨在扩展nginx Web服务器功能的第三方模块.它的模块如下:

STANDARD HTTP MODULES: 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,
Split Clients, SSI, Upstream, User ID, UWSGI.

OPTIONAL HTTP MODULES: Addition, Auth Request, Debug, GeoIP, Gzip
Precompression, HTTP Sub, Image Filter, IPv6, Real IP, Spdy, SSL, Stub Status,
Substitution, WebDAV, XSLT.

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

THIRD PARTY MODULES: Auth PAM, DAV Ext, Echo, HTTP Substitution Filter,
Upstream Fair Queue.

nginx-extras是nginx包中功能最丰富的.就像它的完整和轻盈的兄弟一样,它也在宇宙存储库中.它支持nginx-full中的所有模块,但还包括其他模块(例如Perl模块),以及更多旨在进一步扩展nginx Web服务器功能的第三方模块.其完整的模块列表如下:

STANDARD HTTP MODULES: 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,
Split Clients, SSI, Upstream, User ID, UWSGI.

OPTIONAL HTTP MODULES: Addition, Auth Request, Debug, Embedded Perl, FLV,
GeoIP, Gzip Precompression, Image Filter, IPv6, MP4, Random Index, Real IP,
Secure Link, Spdy, SSL, Stub Status, Substitution, WebDAV, XSLT.

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

THIRD PARTY MODULES: 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更轻的模块集.完整的模块列表如下:

STANDARD HTTP MODULES: 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, Split Clients, SSI, Upstream, User ID.

OPTIONAL HTTP MODULES: Debug, IPv6, Real IP, SSL, Stub Status.

THIRD PARTY MODULES: Naxsi, Cache Purge, Upstream Fair.

口味中的资源使用

虽然我不知道在nginx的各种风格上运行过任何基准测试,但通常认为你使用的nginx版本功能越多,它所使用的资源就越多.

然而,与启用了更多模块的Apache可能是一个内存妓女不同,在启用模块时,与Apache相比,nginx仍然不会占用太多内存. (这个声明的例外是naxsi风味.这种风味总是占用更多资源,因为它是Web应用程序防火墙和Web服务器.)

如果我找到它们,我会在这个答案中添加基准测试,但同样,我不知道任何现有的各种口味的基准测试.即使我运行的网站没有繁忙的流量,我也没有注意到PHP驱动的网站上的nginx-extras,nginx-full或nginx-light之间的任何实际性能下降.

标签: nginx

相关文章推荐

添加新评论,含*的栏目为必填