How to Install NGINX Open Source

9月伊始,举国上下,老中青、大中小、幼婴胎开始了一年一度的大型活动,他们都开始上学了……

而我的内心“我想去读书”

言归正传!一直以来,通过nginx.com文档安装nginx时,总会遇到一个bug,不得不说维护官方文档的同学是太大意了还是太懒了,比如下面的红色部分./Configure,官网是小写,实际包里是大写C开头的,多年没有修复过……

Nginx是开源软件,它的安装通常有两种方式:a)从源码编译安装;b)从预构建的软件包安装。我个人倾向于源码安装,因为后续方便安装第三方插件;预构件的软件包安装非常方便,默认会安装所有模块,基本不用操作什么,几个命令就搞定了。

这里主要介绍从源码编译安装:

1) 安装Nginx依赖(可以用yum等包管理工具安装下面3个包,但版本较低):

Tips: 下面3个包的版本可在其官网查找,安装较新的版本。

the PCRE library – required by NGINX Core and Rewrite modules and provides support for regular expressions:


$ cd  #user's home dir
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
$ tar -zxf pcre-8.41.tar.gz
$ cd pcre-8.41
$ ./configure
  --Tip: Invalid C++ compiler or C++ compiler flags
  --$ yum install gcc gcc-c++ autoconf automake -y
$ make
$ sudo make install
  • the zlib library – required by NGINX Gzip module for headers compression:
    
    $ cd
    $ wget http://zlib.net/zlib-1.2.11.tar.gz
    $ tar -zxf zlib-1.2.11.tar.gz
    $ cd zlib-1.2.11
    $ ./configure
    $ make
    $ sudo make install
  • the OpenSSL library – required by NGINX SSL modules to support the HTTPS protocol:
    
    $ cd
    $ wget http://www.openssl.org/source/openssl-1.0.2k.tar.gz
    $ tar -zxf openssl-1.0.2k.tar.gz
    $ cd openssl-1.0.2k
    $ ./configure darwin64-x86_64-cc --prefix=/usr 
    $ ./Configure linux-x86_64 --prefix=/usr
    $ make 
    $ sudo make install
    
    # 注意, 红色部分需要根据具体系统而定,可执行下面命令查看:
    $ uname -m  #查看操作系统位数
    $ ./Configure LIST | grep -i linux  #显示可用的Linux参数
    最后根据系统位数决定红色部分用什么参数,由于我是centos7 x86_64,所以最终参数是“linux-x86_64“

 

2) 安装Nginx:

i) 下载源码

a) To download and unpack source files for the latest mainline version, type-in the commands:


$ cd
$ wget http://nginx.org/download/nginx-1.13.5.tar.gz
$ tar zxf nginx-1.13.5.tar.gz
$ cd nginx-1.13.5
  • b) To download and unpack source files for the latest stable version, type-in the commands:
    
    $ cd
    $ wget http://nginx.org/download/nginx-1.12.1.tar.gz
    $ tar zxf nginx-1.12.1.tar.gz
    $ cd nginx-1.12.1

 

ii) 配置Nginx构建选项

  • 我的配置如下,大多基于web服务需要的构建模块配置:
    
    $ ./configure \
    --prefix=/opt/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --http-client-body-temp-path=/tmp/nginx/client_body \
    --http-proxy-temp-path=/tmp/nginx/proxy \
    --http-fastcgi-temp-path=/tmp/nginx/fastcgi \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/lock/subsys/nginx \
    --with-pcre=../pcre-8.41 \
    --with-zlib=../zlib-1.2.11 \
    --with-http_stub_status_module \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_gzip_static_module \
    --with-http_realip_module \
    --with-http_sub_module \
    --with-stream \
    --with-stream_ssl_module \
    --with-http_auth_request_module
    
    注意红色部分,指定了之前安装的包;各路径参数配置含义,请自行查看;
    具体模块构建配置可参考:默认构建模块非默认构建模块第三方构建模块 ;
    
    $ mkdir -p /tmp/nginx/client_body
    $ mkdir -p /tmp/nginx/proxy
    $ mkdir -p /tmp/nginx/fastcgi

 

iii) 编译并安装Nginx

  • Compile and install the build:
    
    $ make
    $ sudo make install
  • After the installation is finished, run NGINX Open Source:
    $ sudo nginx

至此,安装结束!

另外,还可以配置系统自动启动、防火墙端口开放等操作。

若有疑问,请在这里留言,一起讨论,谢谢。

 

One thought on “How to Install NGINX Open Source

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: