摘要:如果要使用Nginx的常用功能,那么首先需要确保该操作系统上至少安装了这些软件...

从Nginx发布以来越来越多的个人、公司企业选择用它来做业务引擎。他很快,一方面,在正常情况下,单词请求会得到更快的响应;另一方面,在高峰期(如果有数以万计的并发请求),Nginx可以比其他Web服务器更快的响应请求;Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成;它具有的高可靠性是选择它的基本条件,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。一般情况下,1w个非活跃的HTTP Keep-Alive 连接在Nginx中仅消耗内存2.5MB的内存,这是Nginx支持高并发的基础;随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10w以上并发请求的Server,无疑会受到大家的青睐;master管理进程与woker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。
如果使用Nginx的常用功能,那么首先需要确保该操作系统上至少安装了以下软件:

  • GCC编译器
  • GCC(GNU Compare Collection)可以用来编译C语言程序。Nginx不会直接提供二进制可执行程序(1.2.x版本中已经开始提供某些操作系统上的二进制安装包了),我们可以使用最简单的方式安装GCC,例如:

    GCC是必需的编译工具,如果使用C++来编写Nginx HTTP模块,这时就需要用到G++编译器了。G++编译器也可以yum安装,例如:

    Linux上有许多软件安装方式,yum只是其中比较方便的一种。

  • PCRE库
  • PCRE(Perl Compatible Regular Expressisons,Perl兼容正则表达式),这个函数库目前为很多软件所使用,该库支持正则表达式。它由RegEx演化而来,实际上,Perl正则表达式也是源于Henry Spencer写的RegEx。
    如果我们在配置文件nginx.conf里使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。当然,如果你不会使用正则表达式,就不必安装它。其yum安装方式如下:

    pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件,这也是编译等,这也是编译Nginx所必须使用的。

  • zlib库
  • zlib库用于HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx。其yum安装方式如下:

    同理,zlib是直接使用的库,zlib-devel是二次开发所需要的库。

  • OpenSSL开发库
  • 如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果women我们想使用MD5、SHA1等散列函数,那么也需要安装它。其yum安装方式如下:

上面所列的4个库只是完成Web服务器最基本功能所必需的。
Nginx是高度自由化的Web服务器,它的功能是由许多模块来支持的。而这些模块可根据我们的使用需求来定制,如果某些模块不需要则完全不必理会它。同样,如果使用了某个模块,而这个模块使用了一些类似zlib或OpenSSL等的第三方类库,那么就必须先安装这些软件。