首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx平滑升级

一、nginx平滑升级概述  随着网站并发访问量越来越高,nginx web 服务器也越来越流行,nginx 版本换代越来越频繁,1.16.2版本的nginx更新了许多新功能,生产环境中版本升级必然的,...但是线上业务不能停,此时nginx升级就是运维的重要工作了。...二、nginx平滑升级原理 多进程模式下的请求分配方式     Nginx默认工作在多进程模式下,即主进程(master process)启动后完成配置加载和端口绑定等动作,fork出指定数量的工作进程...重新打开日志文件 三、nginx平滑升级实战 1.查看旧版nginx的编译参数  [root@localhost ~]# /usr/local/nginx/sbin/nginx -V nginx version...-v nginx version: nginx/1.16.0 四、版本回滚 对于升级来说,最难的不是升级,而是回滚,因为在实际生产环境回滚的机率是存在,比如:新版本由于某些未知bug导致与现有应用不兼容

1.4K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nginx平滑升级

    直接升级一时爽,服务宕机火葬场 以下对正在升级的机器简称为目标机器,将要升级的软件版本简称为目标版本 升级前准备 1....下面开始进入平滑升级阶段,通过nginx内置的USR2信号机制,开启两个版本的进程 kill -USR2 11830 # 11830是上图中的原版本nginx主进程 ?...此时访问nginx服务,检查服务是否正常服务,请求响应、各模块功能、日志等,如果没有问题则可以杀掉原版本nginx主进程,完成平滑升级 kill 11830 10....如果存在问题,则可以立刻通过nginx HUP信号回复原版本nginx进程,再停掉目标版本进程,使用备份恢复原版本nginx程序文件 kill -HUP 11830 && kill 5788 集群机器升级...直接升级一时爽,一直直接升级一直爽 3. 验证服务正常,重新挂到负载,并依次进行升级集群内机器

    1.3K30

    Nginx升级流程

    在之前做过 Nginx升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题...,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚,或者升级新的 Nginx 文件以后会发现预期的功能或者指向的配置文件出现了错误,下面我们来看下看热升级的流程是怎样进行的...当退出老 master 进程以后不能进行回滚,如果想回滚,就需要再走一次热升级流程,用备份好的老 Nginx 文件作为新的热升级文件(因此建议备份旧的 Nginx 文件)。...以上就是热升级流程,我们可以通过他实现不停机更新我们的 Nginx,这为我们持续使用 Nginx 的最新特性提供了帮助。...这篇文章主要讲解了 Nginx升级的流程,希望在看完本文后可以使你在升级过程中若发生错误,知道该怎么处理。 在热升级之前,建议备份旧的 Nginx 文件,以防升级后出现问题,便于回滚。

    90520

    Nginx实践--安全升级

    之前写了一些nginx的东西,这次继续,主要使用upstream针对proxy_pass转发做个处理 一般情况下我们在使用nginx反向代理的时候,都是如下配置, ... location /api...如果我们可以反向代理,如果别人也知道了我们的接口域名也不是可以自己搭一个nginx服务器就可以代理到我们的接口服务器上去???是不是感觉很危险,是的。。。...对此当时做的时候就加了一个临时方案,在接口服务中添加一个ip白名单,白名单中的ip都是nginx服务器的ip,然后就项目上线了。这样也实现了需求,但ip如果被伪造了怎么办?...详细的配置内容还是建议大家参考Nginx upstream官方文档。 此外,除了安全性方面,使用内网ip进行接口转发也省去了转发中的DNS重新解析的过程,有利于大幅提升接口转发效率。...综上,在proxy_pass转发中我们使用了两种方案来对安全性做一些提升 proxy_pass转发到外网域名,同时在接口服务器上添加访问来源白名单,把nginx服务器的ip写进去 proxy_pass转发到内网域名

    1K30

    Nginx平滑升级源码分析

    一、平滑升级步骤 1、重命名之前的sbin/nginx文件,将新的nginx文件放到sbin/目录下 #mv ./sbin/nginx ./sbin/nginx.old #cp ~/nginx ..../sbin/ 2、向正在运行的nginx发送USR2信号启动新的nginx,这个时候新老nginx都会接收请求,看那一个进程能抢到锁,抢到锁的worker进程可以accpet新请求 #kill -USR2... `cat nginx.pid` 3、观察新的nginx运行无误后,向旧nginx发信号 停止旧nginx的运行 #kill -QUIT `cat nginx.pid.oldbin` 二、源码分析 1...,nginx启动时 设置信号监听函数,监听信号 src/core/nginx.c   ?...651行 ngx_execute 启动新的bin文件 由于nginx老master进程fork出的新nginxmaster进程,他们可以监听同一个端口,所以新nginx和老nginx可以同时监听端口,

    1.2K70

    Nginx重装与平滑升级

    1、为什么要重装与升级 软件升级和提高安全性 ?...2、Nginx重装 第一步:停止Nginx软件 第二步:删除/usr/local/nginx文件夹 第三步:下载Nginx-1.16重新进行配置、编译以及安装 缺点:在重装升级的过程中,需要停止目前线上正在运行的业务...3、Nginx平滑升级 问题:什么是平滑升级?答:所谓的平滑升级就是在不停止业务的前提下,实现对Nginx软件版本的 升级。...nginx二进制文件 拉起一个新的主进程 旧主进程 不停止) WINCH (优雅的关闭worker进程) Nginx平滑升级 就是在不停止Nginx现有业务的前提下,实现Nginx版本的升级。...- worker进程 就是在不停止Nginx现有业务的前提下,实现Nginx版本的升级

    2K20

    Ubuntu下Nginx版本升级

    今天把服务器的Nginx版本给升级到最新的稳定版本1.6.2了,Linux服务器操作系统为64 位的Ubuntu 12.04,写一下升级过程,首先下载Nginx,本次升级直接用ssh 远程升级的,所以所有操作都是在...shell下面进行,所有操作都用命令,其实除了注视,真正需要的命令也就那么几个 升级过程 # 下载解压nginx $ curl http://nginx.org/download/nginx-1.6.2....tar.gz > nginx-1.6.2.tar.gz $ tar zxvf nginx-1.6.2.tar.gz $ cd nginx-1.6.2 # 查看当前nginx 编译参数 $ nginx...-s stop $ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-1.6 # 把刚才编译好的nginx二进制文件,覆盖现在文件.../objs/nginx /usr/local/nginx/sbin/nginx $ 启动nginx $ nginx $ 查看nginx版本 $ nginx -v # 输出 nginx version:

    1.3K10

    nginx的平滑升级方法:

    最简单的nginx的平滑升级方法: 1 找到nginx的执行文件的路径 # ps auxf|grep nginx  记下nginx的master进程 pid(我这里是2752 ) 2 查看当前nginx...4 移走原先的nginx二进制文件 # mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old 5 替换新编译的 文件到nginx的...sbin目录下 # cp objs/nginx /usr/local/nginx/sbin/ 6 执行升级命令(在解压出的新版本的nginx源文件目录下执行) # make upgrade /usr/local.../logs/nginx.pid.oldbin` 7 检查升级是否完成 # ps aux|grep nginx 可以看到nginx的master进程 pid变了。...# /usr/local/nginx/sbin/nginx -V 也可以看到nginx的版本升级完成了 # ps aux|grep nginx还可以看到老的nginx进程在逐步shutdown。

    1.3K30

    nginx编译安装后对nginx进行平滑升级

    前言 nginx编译安装后用了一段时间后发现当前版本太老或需要新的功能时就需对当前nginx版本进行版本升级,但又不能影响正常的使用,所以这时就需到对nginx的平滑升级,更新到最新版本了。...本文演示的是nginx-1.6.0升级nginx-1.14.0的过程,其他版本也适用。...(升级可执行文件) WINCH graceful shutdown of worker processes (优雅地关闭worker进程) nginx新版的下载 下载页面:http://nginx.org...# 将新编译的二进制文件拷贝到现有nginx目录下 cp -r /server/tools/nginx-1.14.0/objs/nginx /usr/local/nginx/sbin/nginx 平滑升级...test is successful # 给nginx的master进程发送升级信号 kill -USR2 `cat /usr/local/nginx-1.6.0/logs/nginx.pid` #向老

    1.6K00

    Nginx升级,报错的却是OpenSSL?

    最近在复习 HTTP 协议的时候,突然想起来很早之前就对自己的项目进行过Nginx支持从 HTTP 1.1 -> SPDY 的升级。但是后来好像没成功就搁置了。...在复习的过程中看到过一篇文章,有提到 Nginx HTTP 1.1 -> HTTP 2.0 升级的一些前置需求,还给出了一些参考资料。这就挠得我心痒痒了,看完文章后赶紧的在把相关资料过一遍。...TLS SNI support enabled configure arguments:…… 这里可以看出 Nginx 的版本信息以及配置项等,虽然 Nginx 版本符合了,但是 OpenSSL 的版本却不符合即将要升级使用...替换完成后执行: nginx -s restart 至此,如果你能像我一样没有发生其他错误,那么就恭喜你,你已经完成了 Nginx 的 HTTP 2.0 升级了。(什么?报错了?...你已经完成了 Nginx HTTP 2.0 的升级了。 最后 对于配置语法更严谨。 如果需要直接访问到某一个静态文件(*.html)则需要配置为 alias 而不是 root。

    2.2K70
    领券