方法一:

对于现在有的环境是通过源码包安装nginx的,由于库文件都存在,要升级nginx直接在虚拟机上编译安装好包 然后打包 ,更新到线上机器的/opt/nginx1.x上。

测试如下:

scp nginx1.6.3_az.tar.gz root@192.168.137.128:/opt/

对于现用机器:

tar xzf nginx1.6.3_az.tar.gz

测试正常。

方法二:

采用替换二进制文件nginx(objs下的)

现有环境是nginx1.5.7 ,要升级到nginx1.6.3.测试如下:

对于新版本:

先用

[root@QD1 nginx-1.6.3]# patch -p1 < /opt/soft/nginx_upstream_check_module-master/check_1.5.12+.patch  把补丁打进去[root@QD1 nginx-1.6.3]# ./configure --prefix=/opt/nginx --with-http_stub_status_module  --with-http_gzip_static_module  --with-http_ssl_module --add-module=/opt/soft/nginx_upstream_check_module-master[root@QD1 nginx-1.6.3]# make                            //这样在objs下生成二进制nginx,不要make install[root@QD1 nginx-1.6.3]# cp objs/nginx /opt/nginx/sbin/[root@QD1 nginx-1.6.3]# /opt/nginx/sbin/nginx -v[root@QD1 nginx-1.6.3]# /opt/nginx/sbin/nginx -t[root@QD1 nginx-1.6.3]# ls /opt/nginx/logs/access.log error.log nginx.pid[root@QD1 nginx-1.6.3]# /opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf      //测试新版本nginx是否正常[root@QD1 nginx-1.6.3]# ls /opt/nginx/logs/access.log error.log nginx.pid[root@QD1 nginx-1.6.3]# pkill nginx                  //停掉现有nginx[root@QD1 nginx-1.6.3]# ls /opt/nginx/logs/ access.log error.log                                                              //pid消失[root@QD1 nginx-1.6.3]# /opt/nginx/sbin/nginx[root@QD1 conf]# /opt/nginx/sbin/nginx -s reload

方法三:

重新编译新版本nginx,安装到/opt/nginx1.x上。然后拷贝旧版本配置文件,

将新版本nginx1.x的端口改一下测试是否正常,正常的话就停掉旧版本nginx,新版本nginx改成80.

此方法是正常方法,一定可以实现不作测试。

[root@QD1 nginx-1.6.3]# patch -p1 < /opt/soft/nginx_upstream_check_module-master/check_1.5.12+.patch

[root@QD1 nginx-1.6.3]#   ./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_gzip_static_module  --add-module=/opt/soft/nginx_upstream_check_module-master

第三种方法是最安全的方法 推荐使用。

对于第三种方法:脚本实现如下:

#!/bin/bash
# function: upgrate nginx
# os_type: Centos/Redhat
# author: knight
# date: 2015-05-27
###################
mypath1="/opt/software"
mypath2="/opt/soft"
cd /opt/
if [ ! -d "$mypath1" ];thencd $mypath2#pwd
elsecd $mypath1#pwd
fi#download & install
wget http://nginx.org/download/nginx-1.6.3.tar.gz
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
tar -xzf nginx-1.6.3.tar.gz
unzip master
cd nginx-1.6.3
patch -p1 < ../nginx_upstream_check_module-master/check_1.5.12+.patch
./configure --prefix=/opt/nginx1.6 --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module  --add-module=../nginx_upstream_check_module-master
make
make install# copy nginx_configuration
rsync -av /opt/nginx/conf/nginx.conf /opt/nginx1.6/conf/
cp -a /opt/nginx/conf/webconf /opt/nginx1.6/conf/
sed -i 's/listen *80;/listen  83;/g' /opt/nginx1.6/conf/nginx.conf           #对原文件修改加 -i
echo "软件安装完成, 请在webconf/upstream.conf加入以下参数进行测试"
echo -e "参数是:\n  check interval=3000 rise=2 fall=5 timeout=1000 type=http;\n  "
echo "如果要加入状态页可以在nginx.conf的http段加入如下:"
echo -e "location /status {\n  check_status;\n  access_log   off;\n  }\n"
echo "以上完成之后启动新版nginx进行测试,测试无误后,修改新版nginx端口为80,停掉旧版nginx,再启动新版nginx,升级完成"

记录Nginx的升级实践以及实现的三种方法详解相关推荐

  1. 记录nginx漏洞升级问题处理

    文章目录 记录nginx漏洞升级问题处理 1. 问题描述: 2.解决方案: 3. nginx平滑升级经验: 记录nginx漏洞升级问题处理 1. 问题描述: nginx 安全漏洞(CVE-2019-9 ...

  2. docker实践(2)常用命令和DockerFile详解

    <docker实践(1) 入门和springBoot实践部署> <docker实践(2)常用命令和DockerFile详解> <docker实践(3) 仓库registr ...

  3. Nginx(二):反向代理原理 与 配置文件详解

    相关阅读: Nginx(一):Nginx原理概述 与 安装步骤详解 Nginx(二):反向代理原理 与 配置文件详解 Nginx(三):负载均衡策略 与 Nginx静态服务器 Nginx(四):Ngi ...

  4. python记录程序运行时间的三种方法

    这里提供了python记录程序运行时间的三种方法,并附有实现代码,最后进行比较,大家参考下: 方法1 import datetime starttime = datetime.datetime.now ...

  5. Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码)

    Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码) 方法一 :set (只能在server节点内) 方法二: set_by_lua (只能在server节点内) 方法三: map ...

  6. 填充CachedRowSet对象记录集(三种方法)

    实训内容和要求 运用三种不同的方法填充 CachedRowSet 对象内部的记录集结构(crs 是 CachedRowSet 类的实例对象). 实训步骤 方法一,jlj01.jsp 的代码如下: &l ...

  7. android 国内 更新方法,手机安卓系统怎么升级 安卓系统更新升级的三种方法介绍...

    最近有网友问小编"安卓系统怎么升级?",针对该问题,笔者也在网上查找了下相关资料,不过并没有找到什么有价值的相关介绍,多数都是介绍如何自动升级.或者下载升级版包等等方法,对于一些常 ...

  8. Nginx、LVS及HAProxy负载均衡软件的优缺点详解

    摘要:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析,本文总结了三者之间的优缺 ...

  9. 【转】linux /centos 中OpenSSL升级方法详解

    相关软件下载地址Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www.o ...

最新文章

  1. python图片二进制流转换成图片_微信如何将图片转换成word文字
  2. 功能测试——Selenium自动化功能测试
  3. 入门数据分析选择Python还是SQL?七个常用操作对比!
  4. 考虑页面置换算法,系统有m个物理块供调度,初始时全空,页面引用串长度为p,包含了n个不同的页号,无论用什么算法,缺页次数不会少于( )
  5. 汇编-简单的条件转移指令应用-附例子:判断坐标所在象限
  6. 大话设计模式—外观模式
  7. Butter knife 原理
  8. (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接...
  9. android studio 预览问题 :java.lang.NoClassDefFoundError: com/android/util/PropertiesMap
  10. android studio 图表,Android Studio——记账本以及图表可视化实现
  11. 数据库原理—数据库管理系统的功能和特点(四)
  12. 【免费毕设】ASP.NET基于.NET的城市公交查询系统的实现与设计(源代码+lunwen)
  13. java连接数据库电商平台_Java数据库中台项目,电商,CMS轻松实现,包含数据库源文件...
  14. 基于微信公众号的图书借阅管理系统设计与实现
  15. 眨眼视频制作与生成活体视频生成
  16. 【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)
  17. 数字转换成中文大写的经典方案
  18. React的消息订阅全过程
  19. @ApiOperation
  20. Docker(2) 安全加密,habor仓库和Docker网络

热门文章

  1. 【FPGA实训第一周】---Quartus入门
  2. 【Python】条件语句、循环语句、pass语句的使用
  3. Propagation-Based Social-Aware Replication for Social Video Contents
  4. android实现底部弹出框与软键盘冲突(全面屏虚拟键适配)
  5. PHP实现百度人脸识别
  6. 巴菲特:选择股票要学会三个诀窍
  7. 蓝桥杯真题 搭积木 小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形
  8. UE5_定序器中使用chaos(记录一下)
  9. 360与酷派和解,增持奇酷比例升至75%
  10. Java实现窗体中角色逐渐风化效果