一、编译安装
1.安装Nginx编译所依赖的库文件或开发包
[root@web ~]# yum install gcc redhat-rpm-config \
libxslt-devel gd-devel perl-ExtUtils-Embed \
geoip-devel gperftools-devel pcre-devel openssl-devel -y
2.下载并解压Nginx软件包
[root@web ~]# useradd nginx #创建一个Nginx运行用户
[root@web ~]# wget http://nginx.org/download/nginx-1.14.2.tar.gz
[root@web ~]# tar xf nginx-1.14.2.tar.gz
[root@web ~]# cd nginx-1.14.2/
3.编译安装
编译是为了检查系统环境是否符合编译安装的要求
[root@web nginx-1.14.2]# nginx -V #获取所有的编译参数
[root@web nginx-1.14.2]# ./configure .... #生成Makefile文件
[root@web nginx-1.14.2]# make #根据Makefile文件生成相应的模块
[root@web nginx-1.14.2]# make install #并将生成的模块和文件复制到相应的目录
二、导入第三方模块
步骤
1.查看当前 nginx 版本
2.下载新模块 nginx_upstream_check_module && 解压
3.进入当前nginx 的源文件, 用 patch 方式打补丁
patch -p1 <../nginx_upstream_check_module-master/check_1.14.0+.patch
4.编译 ./configure(添加:--add-module=/第三方模块目录)
5.make
6.make install
7.验证模块是否可用
三、平滑升级
1.安装Nginx所需依赖包
2.下载并解压,更高版本的Nginx
3.删除检测第三方模块是否有用的配置文件
4.将旧的nginx二进制文件进行备份,然后替换成新的nginx二进制文件
[root@web nginx-1.16.1]# mv /usr/sbin/nginx /usr/sbin/nginx.old
[root@web nginx-1.16.1]# cp objs/nginx /usr/sbin/nginx
5.向旧的Nginx的Master进程发送USR2信号
#旧的nginx进程会和新的nginx进程共存
[root@web ~]# kill -USR2 旧的nginx父进程pid
#验证站点是否正常
6.向旧的master进程发送WINCH信号,旧的worker子进程优雅退出。
[root@web ~]# kill -WINCH 旧的nginx父进程pid
7.向旧的master进程发送QUIT信号,旧的master进程就退出了。
[root@web ~]# kill -QUIT 旧的nginx父进程pid
四、回滚:重新回到之前的的版本
1.替换nginx二进制文件
2.向旧的master发送USR2信号
3.向旧的master发送SIGWINCH
4.向旧的master发送QUIT
五、升级或回滚对应的信号
信号 | 含义 |
---|---|
USR1 | 重新打开日志文件,reopen |
USR2 | 平滑升级可执行的二进制文件 |
WINCH | 平滑关闭worker进程 |
QUIT | 优雅关闭master进程 |
HUP | 优雅重启master进程,reload |