# 安装nginx以及添加模块

# 一、准备工作

# 1、相关下载

【注意】以下默认主机可以访问外网,如果不能访问外网,则相关下载需要先下载,然后使用ftp工具将安装包上传到主机相应目录。本次默认文件下载目录在/usr/local/。

SSL功能需要openssl库,下载地址:http://www.openssl.org/

选择版本下载,本次选择1.1.1,使用wget命令下载安装包。

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz

gzip模块需要zlib库,下载地址:http://www.zlib.net/

wget http://www.zlib.net/zlib-1.2.11.tar.gz

rewrite模块需要pcre库,下载地址:http://www.pcre.org/

wget https://ftp.pcre.org/pub/pcre/pcre-8.33.tar.gz

Nginx的安装包:下载地址为:http://nginx.org/en/download.html

wget http://nginx.org/download/nginx-1.14.0.tar.gz

# 2、解压

tar zxvf openssl-1.1.1.tar.gz tar zxvf zlib-1.2.11.tar.gz tar zxvf pcre-8.33.tar.gz tar zxvf nginx-1.14.0.tar.gz 解压完成后会得到四个相应目录,如需要可自行对目录重命名。

# 3、依赖安装

如果是新环境需要安装gcc gcc-c++ make:

yum install -y gcc gcc-c++ make

安装PCRE库

cd /usr/local/pcre-8.33
./configure
make && make install

安装SSL库

cd /usr/local/openssl-1.1.1
./config
make && make install

安装zlib库

cd /usr/local/zlib-1.2.11
./configure
make && make install

# 二、Nginx安装配置

# 1、安装

为方便操作,此处将nginx目录重命名:

mv nginx-1.14.0 nginx; cd nginx/

进入nginx目录并执行

cd /usr/local/nginx

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.33 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.1.1

其中

--with-pcre=/usr/local/pcre-8.33

--with-zlib=/usr/local/zlib-1.2.11

--with-openssl=/usr/local/openssl-1.1.1

分别指其相应源码目录,即刚刚解压得到的目录,需要根据自己实际情况修改。完成后如下:

make && make install

至此,nginx安装完成。

默认日志路径为/usr/local/nginx/logs/,但是默认没有创建logs目录,因此需要手动创建logs目录,否则启动时会报错。

mkdir /usr/local/nginx/logs

# 2、配置开机启动

配置nginx开机启动,切换到/lib/systemd/system目录,创建nginx.service文件:

cd /lib/systemd/system

vim nginx.service

文件文件内容如下:

[Unit]

Description=nginx

After=network.target

 

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx reload

ExecStop=/usr/local/nginx/sbin/nginx quit

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

保存并退出,使用下面命令设置开机启动:

systemctl enable nginx.service
systemctl start nginx.service  #启动,也可以使用sbin/nginx启动
systemctl stop nginx.service  #结束nginx 
systemctl restart nginx.service  #重启,可使用sbin/nginx -s reload

# 3、配置文件

/usr/local/nginx/conf/nginx.conf文件是nginx默认的配置文件,对其修改即可。

# 三、其他

# 1、添加三方模块

以headers-more-nginx-module-0.33为例

创建目录存放模块包:

mkdir /usr/local/nginx/module

cd /usr/local/nginx/module

下载ngx_headers_more包并解压:

wget https://github.com/openresty/headers-more-nginx-module/archive/v0.33.tar.gz

tar vzxf v0.33.tar.gz

退回nginx主目录:cd .. (即/usr/local/nginx/)

查看编译安装的模块:

sbin/nginx -V
nginx version: nginx/1.14.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)

built with OpenSSL 1.1.1  11 Sep 2018

TLS SNI support enabled

configure arguments: --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.33 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.1.1

添加新的模块headers-more-nginx-module-0.33

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.33 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.1.1 --add-module=module/headers-more-nginx-module-0.33

完成后执行:

make

注意不是make install,这个命令是覆盖安装

备份原有nginx,重新拷贝nginx

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx20180913

cp /usr/local/nginx/objs/nginx /usr/local/nginx/sbin/

查看查看重新编译安装的模块:

sbin/nginx -V
nginx version: nginx/1.14.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)

built with OpenSSL 1.1.1  11 Sep 2018

TLS SNI support enabled

configure arguments: --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.33 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.1.1 --add-module=module/headers-more-nginx-module-0.33

重启nginx即可

Last Updated: 4/2/2019, 9:50:03 AM