实现热部署(在线升级):
热部署方案一 (有弊端,不利于回滚)
查看nginx版本及源编译差数:
/usr/local/nginx/sbin/nginx -V

预编译/ 编译/ 安装:在预编译之前,先删除之前生成的Makefile文件,保存干净 也可不删除:
cd nginx-1.16.0
make clean
echo-nginx-module-0.61.tar.gz (需手动上传)
mv /usr/src/echo-nginx-module-0.61.tar.gz /usr/src/echo-nginx-module
预编译-添加echo-nginx-module模块(添加前模块需要和之前的一致)
./configure --prefix=/usr/local/nginx --with-http_stub——status_module --with-http_ssl_module --add-module=/usr/src/echo-nginx-module
编译 安装
make &&make install
/usr/local/nginx/sbin/nginx -V
进行升级
make upgrade

热部署方案二 (更谨慎的操作,随时可回滚):
查看原版本参数及编译安装均与热部署一相同
/usr/local/nginx/sbin/nginx -V
cd /usr/src/nginx-1.16.0
删除之前Makefile文件
make clean
进行预编译
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../echo-nginx-module
编译/ 安装
make && make install

启动nginx服务/查看进程:
/usr/local/nginx/sbin/nginx
ps -ef|grep nginx
查看nginx.pid master老进程
cat /usr/local/nginx/logs/nginx.pid
向master进程xxxxx(进程id) 请求 生成新的进程
kill -USR2 xxxxx

优雅退出老master进程
向老master进程发信号 xxxxx优雅退出, 新master进程xxxxx起来:
kill -WINCH xxxxx
ps -ef|grep nginx

快泽/回滚:
重新拉起老master进程:
kill -HUP xxxxx
退出新的master进行:
kill -QUIT xxxxx

热部署三:
下载源码包:

wget http://www.nginx.org/download/nginx-1.14.2.tar.gz
获取旧版本号
/usr/local/nginx/sbin/nginx -V
解压 编译新版本的nginx 与旧版本的参数相同,不加上旧版本的参数,旧的版本参数不可用:
tar xf nginx-1.14.2.tar/gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
编译/ 安装 (这里我选择编译不安装)
make
下图是编译安装自动生成的文件 效果

备份旧版本的nginx可执行文件, 复制新版本的nginx执行文件 (默认编译安装时已复制过去, 如果没有编译安装 自己手动复制)
mv /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -v
/usr/local/nginx/sbin/nginx.old -v

平滑重启动测试:
/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -v

 

nginx虚拟机及热部署(在线升级)的更多相关文章

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

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

  2. Nginx 热部署和日志切割,你学会了吗?

    上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场 ...

  3. nginx之热部署,以及版本回滚

    热部署的概念:当从老版本替换为新版本的nginx的时候,如果不热部署的话,会需要取消nginx服务并重启服务才能替换成功,这样的话会使正在访问的用户在断开连接,所以为了不影响用户的体验,且需要版本升级 ...

  4. nginx命令行及演示:重载、热部署、日志切割

    重载配置文件 nginx -s reload 热部署(升级nginx) 首先备份二进制文件 cp nginx nginx.old  拷贝新版本的nginx替换以前的nginx二进制文件 cp  ngi ...

  5. Nginx系列p2:重载,热部署,日志分割

    今天我们来学习 nginx 的 重载.热部署.日志分割功能 重载:当我们需要修改配置文件中的一些值,我们可以直接修改该配置文件,然后重新启动 nginx 服务,就可以实现在 nginx 不停止服务的情 ...

  6. nginx使用热部署添加新模块

    简介 当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书.也就是使用 https协议.那么则需要添加 http_ssl ...

  7. JAVA代码热部署,在线不停服动态更新

    本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署.   JDK代理的两种方式: 1.premain方式是Java SE5开始就提供的代理方式,但其必须 ...

  8. Tomcat学习总结(8)——Tomcat+Nginx集群解决均衡负载及生产环境热部署

    近日,为解决生产环境热部署问题,决定在服务器中增加一个tomcat组成集群,利用集群解决热部署问题. 这样既能解决高并发瓶颈问题,又能解决热部署(不影响用户使用的情况下平滑更新生产服务器)问题. 因为 ...

  9. nginx负载均衡和tomcat热部署简单了解

    简单说下几个名词 nginx     它是一个反向代理,实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的 ...

  10. 【nginx】nginx:利用负载均衡原理实现代码的热部署和灰度发布

    事情起因很简单,代码的改动量很大.而且刚接手服务器,对原有的代码进行了一定程度的重构.虽然在测试服务器上做了较多的测试工作,但是直接将代码送入生产环境还是不放心,万一配置出问题服务直接崩溃怎么解?万一 ...

随机推荐

  1. Redis数据类型之Stream系列一

    一:Stream简介 ​ Redis Stream是5.0版本之后新增的一种数据结构,其结构类似于'仅追加日志'.但也实现了多种操作来克服'仅追加日志'的一些限制,如读取策略(xread,xrange ...

  2. 【Docker】部署Redis

    1.下载镜像 #下载最新版Redis镜像 (其实此命令就等同于 : docker pull redis:latest ) docker pull redis # 下载指定版本的Redis镜像 (xxx ...

  3. C语言循环坑 -- continue的坑

    文章目录 前言 一.continue语法 1.continue的作用 2.语法 二.大坑项目 题目 分析 正确写法 三.进坑调试 第一种 第二种 总结 前言 在使用continue和break时,会出 ...

  4. 使用Stable Diffusion制作AI数字人视频的简明教程

    基本方法 搞一张照片,搞一段语音,合成照片和语音,同时让照片中的人物动起来,特别是头.眼睛和嘴. 语音合成 语音合成的方法很多,也比较成熟了,大家可以选择自己方便的,直接录音也可以,只要能生成一个语音 ...

  5. [爬虫]1.2.1 HTML标签和属性

    HTML(HyperText Markup Language)是一种用于创建网页的标记语言.HTML文档由一系列的HTML标签构成,每个标签都有自己的意义和用途.HTML标签通常成对出现,由一个开始标 ...

  6. 3D相册 复仇者联盟

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Linux下apt与dpkg的详解

    apt是一个包管理工具,用于管理Debian和Ubuntu等基于Debian的Linux发行版中的软件包.它是"Advanced Packaging Tool"的缩写,允许用户在系 ...

  8. 解析PPTX 遇到异常:“\b”(十六进制值 0x08)是无效的字符。

    问题描述: 通过DocumentFormat.OpenXml解析PPTX文件时遇到异常:"\b"(十六进制值 0x08)是无效的字符,查看文件发现存在乱码,乱码的十六进制值刚好时异 ...

  9. 基于C#的无边框窗体阴影绘制方案 - 开源研究系列文章

    今天介绍无边框窗体阴影绘制的内容. 上次有介绍使用双窗体的方法来显示阴影,这次介绍使用API函数来进行绘制.这里使用的是Windows API函数,操作系统的窗体也是用的这个来进行的绘制. 1. 项目 ...

  10. 非全自研可视化表达引擎-RuleLinK

    说在前面 工作中经常会遇到这样的场景: 帮忙把小贝拉门店 商品金额在5w以内,产康订单最多95折. 帮忙把圣贝拉门店 开业时间在6个月内,折扣低于7折要发起审批 帮忙把宁波太平洋店设置独立合同模板 帮 ...