1、nginx信号

nginx进程处理命令:

kill -signals PID

PID即nginx进程ID

signals的参数解释如下所示:

TERM,INT快速关闭进程

QUIT优雅的关闭,如果有请求则等待请求结束后停止

HUP 重载新的配置文件,对于旧的进程还用旧的配置文件,新的进程会使用新的配置文件

USR1重新打开日志文件,常用于日志切割

USR2 使用新版本的 Nginx 文件启动服务,之后平缓停止原有的 Nginx 进程,也就是所谓的“平滑升级”

WINCH平缓停止 worker process,用于 Nginx 服务器平滑升级

对于信号可以参考官网:

http://nginx.org/en/docs/control.html

2、平滑升级nginx

查看现在nginx的版本和编译参数

# ./sbin/nginx -V

nginx version: nginx/1.14.2

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

built with OpenSSL 1.1.0k  28 May 2019

TLS SNI support enabled

configure arguments: --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2.11 --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module

下载新版本nginx并上传到服务器

解压并编译

# tar -zxvf nginx-1.16..tar.gz -C /data/usr/src

# cd /data/usr/src/nginx-1.16.

# ./configure --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2. --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module

执行make但是不要执行make install

# make

备份老的nginx启动文件,并拷贝新的文件

# cp /data/usr/nginx/sbin/nginx /data/usr/nginx/sbin/nginx.bak

# pwd

/data/usr/src/nginx-1.16.

# cp -rpf objs/nginx /data/usr/nginx/sbin/nginx

使用新nginx启动文件,旧的nginx.pid文件添加后缀.oldbin,变为nginx.pid.oldbin,然后执行新版本的二进制文件启动服务,新的nginx启动后将会有新旧两个版本的服务提供服务。

# kill -USR2 `cat /data/logs/nginx/nginx.pid`
# ll /data/logs/nginx/nginx*

-rw-r--r-- 1 root root 5 Sep  2 18:56 /data/logs/nginx/nginx.pid

-rw-r--r-- 1 root root 5 Sep  2 18:51 /data/logs/nginx/nginx.pid.oldbin

平缓停止worker process ,平缓停止旧的nginx服务

# kill -WINCH `cat /data/logs/nginx/nginx.pid.oldbin`
# kill -QUIT `cat /data/logs/nginx/nginx.pid.oldbin`

查看新版nginx的信息

# pwd

/data/usr/nginx/sbin

# ./nginx -V

nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.0k 28 May 2019
TLS SNI support enabled
configure arguments: --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2.11 --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module

参考:
https://blog.csdn.net/my1114/article/details/90717591

nginx信号及平滑升级的更多相关文章

  1. 原创|1分钟搞定 Nginx 版本的平滑升级与回滚

    Nginx无论是对于运维.开发.还是测试来说,都是日常工作需要掌握的一个知识点,之前也写过不少关于Nginx相关的文章: Nginx服务介绍与安装 Nginx服务配置文件介绍 Nginx配置虚拟主机 ...

  2. Nginx安装、平滑升级与虚拟机配置

    Nginx 高性能HTTP反向代理服务器,也是 LAMP/POP3/SMTP代理服务器 由内核和模块组成,内核通过找配置文件讲客户端请求映射到一个location(location是Nginx配置中的 ...

  3. Nginx热部署 平滑升级 日志切割

    1.重载 修改nginx配置文件之后,在不影响服务的前提下想加载最新的配置,就可以重载配置即可. 操作如下: 1)修改nginx配置文件 2)nginx -t     检查nginx文件语法是否有误 ...

  4. Nginx在线服务状态下平滑升级及ab压力测试【转】

    今天,产品那边发来需求,说有个 APP 的 IOS 版本下载包需要新增 https 协议,在景安购买了免费的 SSL 证书.当我往 nginx 上新增 ssl 时,发现服务器上的 nginx 居然没编 ...

  5. Nginx服务器的平滑启动、平缓停止、平滑升级

    注:Nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process). 每一个进程都会有一个PID进程号,可以通过向主进程的PID进程号发送 ...

  6. Nginx版本平滑升级方案

    背景:由于负载均衡测试服务器中nginx版本过低,存在安全漏洞,查询相关修复漏洞资料,需要采取nginx版本升级形式对漏洞进行修复. Nginx平滑升级方案 1.案例采用版本介绍 旧版本 nginx- ...

  7. Nginx 平滑升级、Nginx的一些基础配置

    # Nginx 平滑升级 # 方案一:使用Nginx服务信号进行升级 # 1.将就版本的sbin目录下可执行nginx进行备份(mv nginx nginxold) # 2.将新版本 configur ...

  8. 让你的网站免费支持 HTTPS 及 Nginx 平滑升级

    为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密.简单点说在 ...

  9. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动         假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...

随机推荐

  1. Vue小白篇 - ES6的语法

    为什么要学 ES6 的语法呢? 因为 Vue 语法有很多都是 ES6(ECMAScript 6),这里推荐 [阮一峰 ECMAScript 6 入门]: http://es6.ruanyifeng.c ...

  2. diff算法(核心)

    ps:大致转载知乎文章 vue和react的虚拟dom都采用类似的diff算法,核心大概可以归为两点 1,两个相同的组件产生类似的DOM结构,不同的组件产生不同的DOM结构: 2,同一层级的一组节点, ...

  3. Flink(一)集群配置

    三台主机 centos6 已经完成的工作: 防火墙已关闭 主机名修改完毕,ssh免密登陆配置完成 jdk已安装 zookeeper已经部署并运行 hadoop已经部署并运行 版本:flink-1.8. ...

  4. leetcode-第14周双周赛-1273-删除树节点

    题目描述: 自己的提交:动态规划 class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: Lis ...

  5. docker 数据持久化

    confluence #!/bin/bash docker run \ --name confluence \ --volume "$PWD/data/opt":/opt \ -- ...

  6. Linq 使用Startswith 出现空引用的问题

    一.问题 我使用的是Entity Fromwork CodeFirst来操作数据库,昨天在使用startswith查询数据的时候发现一个问题,就是经常一直报空引用的错误,查了很久才找到原因,这里做一个 ...

  7. printf 输出格式设置\033[47\033[5m 与-8.8s

    摘要:在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显.同样,linux C下printf还有很多其他不常见的格式化输出形式.本文主要为你盘点这些 ...

  8. OC学习篇之---数组对象的引用计数问题和自动释放池的概念

    之前一片文章中我们介绍了OC中的两个关键字@property和@synthesize的使用的使用: http://blog.csdn.net/jiangwei0910410003/article/de ...

  9. Java虚拟机解析篇之---垃圾回收器

    上一篇说了虚拟机的内存模型,在说到堆内存的时候我们提到了,堆内存是Java内存中区域最大的一部分,而且垃圾回收器主要就是回收这部分的内容.那么这篇就来介绍一下垃圾回收器的原理以及回收的算法. Java ...

  10. delphi中SendMessage使用说明

    SendMessage基础知识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线 ...