Nginx编译安装及平滑升级-day12

一、编译安装

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

你可能感兴趣的:(Nginx编译安装及平滑升级-day12)