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

基于Linux直接安装的Nginx版本升级方法

引言随着版本的迭代和漏洞的发现,Nginx作为一款软件避免不了打补丁的命运。以下基于Linux直接安装的Nginx版本升级。以下操作均在本地虚拟机中操作验证,请验证后再线上操作。...--with-stream --with-http_stub_status_module --with-pcre=/root/install_app/pcre2-10.43以上是通过覆盖的方式升级nginx...基于安装包安装Nginxnginx在linux上做了很多分发包,包括debian、centos、ubuntu等。通过nginx官方的安装包升级nginx,可以避免编译过程的麻烦。...升级过程如下:## 安装nginx的仓库源,访问 http://nginx.org/packages/centos/7/noarch/RPMS/ 下载 nginx-release-centos-7-0....list nginx## 安装最新版本的nginxyum install nginx.x86_64## 验证版本nginx -V说明以上就是nginx 1.21.5升级到1.25.4的过程。

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

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.2K30

Nginx 平滑升级

随着 Nginx 越来越流行,Nginx 的版本迭代也越来越频繁,当我们需要使用某些新版本的特性或者修复某个旧版本的 BUG 时,就要对 Nginx 进行升级。...Nginx 的热升级功能可以解决上述问题,它允许新老版本灰度地平滑过渡,这受益于 Nginx 的多进程架构。 Nginx 多进程架构 ?...在Linux中,子进程是由 fork 函数创建的,最初它只是父进程的副本。...当然,多个 worker 进程同时监听 80 端口时,系统内核会有一套算法决定某个连接由哪个 worker 进程处理(可以参考Linux 3.9 内核版本后提供的SO_REUSEPORT选项),从而均衡多个...当老版本的 master、worker 进程都退出后,根据 Linux 内核的规则,pid 为 1 的系统守护进程将成为新 master 的父进程。此时平滑升级完毕。 ?

1.3K10

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.3K31

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转发到内网域名

97530

Nginx升级流程

在之前做过 Nginx升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题...,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚,或者升级新的 Nginx 文件以后会发现预期的功能或者指向的配置文件出现了错误,下面我们来看下看热升级的流程是怎样进行的...必须保持和老的 Nginx 是一致的,否则的话没有办法复用 nginx.conf 文件,如果我们仅仅替换 binary 文件,请注意要备份,另外在新版本的 Linux 中,会要求在覆盖一个正在使用的文件时需要用...当退出老 master 进程以后不能进行回滚,如果想回滚,就需要再走一次热升级流程,用备份好的老 Nginx 文件作为新的热升级文件(因此建议备份旧的 Nginx 文件)。...这篇文章主要讲解了 Nginx升级的流程,希望在看完本文后可以使你在升级过程中若发生错误,知道该怎么处理。 在热升级之前,建议备份旧的 Nginx 文件,以防升级后出现问题,便于回滚。

83220

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...-V # 输出 configure arguments: --prefix=/usr/local/nginx # ,linux不用加 # 加上编译参数 $ ..../objs/nginx /usr/local/nginx/sbin/nginx $ 启动nginx $ nginx $ 查看nginx版本 $ nginx -v # 输出 nginx version:

1.1K10

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.2K30

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
领券