本文主要记录一次从源码安装Nginx过程,参考的是Nginx官网

安装过程比较简单,就是下载源码包,下载依赖包,打包编译安装就完事了。

安装

  1. 安装依赖包
    yum -y install gcc automake autoconf libtool make
    yum -y install openssl openssl-devel
    因为下面的安装过程会打包编译https模块,依赖于openssl,所以需要安装这个依赖,否则会出现./configure: error: SSL modules require the OpenSSL library.的异常。
  2. 下载源码包
    直接从官网下载安装包即可
  3. 下载依赖包
    需要的依赖pcrezlib,从各自的官网下载即可:PCRE下载地址zlib下载地址
  4. 配置
     # 进入nginx源码目录中
     cd /path/to/nginx-source-directory
     ./configure \
         --sbin-path=/usr/local/nginx/sbin/nginx \
         --conf-path=/usr/local/nginx/conf/nginx.conf \
         --pid-path=/usr/local/nginx/nginx.pid \
         --with-http_ssl_module -\
         -with-pcre=../pcre-8.41 \
         --with-zlib=../zlib-1.2.11
  5. 编译
    # 进入nginx源码目录中
    cd /path/to/nginx-source-directory
    make
  6. 安装
    # 进入nginx源码目录中
    cd /path/to/nginx-source-directory
    make install

到这里Nginx就安装完成了,下面给出一些nginx配置的建议。

建议

nginx安装完之后,就需要进行一些配置,下面是我的一些建议。

  1. 目录结构

    conf目录中,创建vhostsupstreams目录,两个目录分别存储serverupstream的定义。在nginx.conf中添加下面的代码引入配置:

     include upstreams/*.conf;
     include vhosts/*.conf;
  2. 文件命名

    vhosts定义文件格式为*.vhost.conf,如果监听服务是域名,以域名倒置格式命名,比如:cn.howardliu.www.vhost.conf,这样的好处是,相同一级域名,不同二级域名的配置文件,在文件列表展示的时候,会在一起,比较好区分隔离。

    upstreams定义文件格式为*.upstream.conf,以服务模块名进行区分,好处是能够在一个文件中定义相同服务模块的内容,进行服务或模块隔离,或者以服务.模块.upstream.conf的格式,但是这样的坏处是,比较散,文件比较多。

  3. 建议显示生命链接超时时间

    nginx.confhttp中定义超时时间,下面是我测试环境的一个定义,需要根据自己的情况:

     fastcgi_connect_timeout 300;
     fastcgi_read_timeout 300;
     fastcgi_send_timeout 300;
     proxy_connect_timeout 300s;
     proxy_read_timeout 300s;
     proxy_send_timeout 300s;

个人主页: https://www.howardliu.cn
个人博文: 源码安装NGINX
CSDN主页: http://blog.csdn.net/liuxinghao
CSDN博文: 源码安装NGINX