首页 > 系统相关 >nginx平滑升级

nginx平滑升级

时间:2024-08-20 08:56:51浏览次数:13  
标签:-- 平滑 pid var 升级 nginx 进程 path

一、概要

nginx升级的原因有两种:1、nginx版本升级需要 2、nginx新添新的模块

二、nginx升级原理

多进程模式:nginx分为主进程(master)和工作进程(work),主进程就是nginx本身,工作进程是看你电脑分配了多少核cpu,但是展示工作进程数还是nginx.conf配置文件种定义。

主进程支持的信号

TERM , INT : 立刻退出

QUIT : 等待工作进程结束后再退出

KILL : 强制终止进程

 HUP : 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。

 USR1 : 重新打开日志文件

USR2 : 启动新的主进程,实现热升级

 WINCH : 逐步关闭工作进程

工作进程支持的信号

TERM , INT : 立刻退出

QUIT : 等待请求处理结束后再退出

USR1 : 重新打开日志文件

三、nginx平滑升级实战

1、首先先检查自己已经编译安装好了ngnix版本(平滑升级只针对编译安装)

/usr/local/nginx/sbin/nginx -V

2、安装新升级的nginx安装包。将安装位置放在和之前的nginx位置相同的地方。

tar -zxvf nginx-1.26.1.tar.gz  -C /usr/local/

3、进入新版本的安装目录,cd  nginx-1.26.1目录 ,进行初始化安装配置。

./configure --prefix=/usr/local/nginx \
            --group=nginx \
            --user=nginx \
            --sbin-path=/usr/local/nginx/sbin/nginx \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --http-log-path=/var/log/nginx/access.log \
            --http-client-body-temp-path=/tmp/nginx/client_body \
            --http-proxy-temp-path=/tmp/nginx/proxy \
            --http-fastcgi-temp-path=/tmp/nginx/fastcgi \
            --pid-path=/var/run/nginx.pid \
            --lock-path=/var/lock/nginx \
            --with-http_stub_status_module \
            --with-http_ssl_module \
            --with-http_gzip_static_module \
            --with-pcre \
            --with-http_realip_module \
            --with-stream
           

4、进行make编译,这里是重点,绝对不能进行make install,如果进行make install 老版本的所有信息就会被覆盖掉。只有make编译了以后, nginx-1.26.1目录 下才会有nginx的执行文件。

make

5、在确定有了nginx以后,把之前的nginx二进制文件备份(也就是安装后的执行文件)

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_$(date +%F)

6、将这个新版本的执行文件复制到/usr/local/nginx/sbin/中

7、检测新版本的nginx是否正常

8、给nginx发送平滑迁移信号(如果不清楚pid,可以看nginx配置文件pid在哪个路径)或者直接使用netstat -tunlp | grep nginx 来过滤。 这里的 -USR2 : 启动新的主进程,实现热升级。

kill -USR2 `cat /var/run/nginx.pid`

9、查看nignx pid,会出现一个nignx.pid.oldbin

ll /var/run/nginx.pid*

10、从容的关闭旧的nginx进程,参数 WINCH : 逐步关闭工作进程

kill -WINCH `cat /var/run/nginx.pid.oldbin`

11、执行不在启动旧的工作进程 ,参数 HUP : 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。

kill -HUP `cat /var/run/nginx.pid.oldbin`

12、结束工作进程,完成此次升级 ,参数QUIT : 等待工作进程结束后再退出

 kill -QUIT `cat /var/run/nginx.pid.oldbin

13、验证nginx是否升级成功

 /usr/local/nginx/sbin/nginx -V

标签:--,平滑,pid,var,升级,nginx,进程,path
From: https://blog.csdn.net/yd3202/article/details/141217509

相关文章

  • nginx基础面试题
    1、破解密码:1、首先重启虚拟机,启动的时候马上按e键进入安全模式2、在有Linux那行的最后面加上rd.break3、ctrl+x将文件4、以读写的方式重新挂载:mount-oremount,rw/sysroot5、进入路径:chroot/sysroot6、改写密码:passwd6、打安全标签:touch/.autorelabel7、退......
  • 记录下首次在MacBook(Retina,2017)上用“黑苹果”升级Sonoma的体验
    中文互联网平台投递说明:本文的写作风格,和以往我的行文风格会有所不同。主要是我打算把这篇极客体验类的文章发在外网上(因为外网对这类文章的包容度和感兴趣程度都会更高,中国大陆玩“黑苹果”的人还是太少,没什么流量),因此我不得不以适合英文表达和阅读的方式来撰写本文,以便外网......
  • 踩过的坑(一)——web容器升级
    背景:国产化web容器(宝兰德)升级。 踩坑过程:web容器升级后,web系统正常访问,看似正常。晚上批量跑批的时候,中断了。中断原因:发现某路径下的文件,的确存在,但是程序报NoSuchFileException。调查得知,现在该文件的权限是640(linux),想定应该是644。其他用户组的read权限缺失,导致文件不......
  • 二进制下载部署Nginx
    一、通过Nginx官网并采取二进制方式部署Nginx官网二、具体步骤[[email protected]]#ll-dnginx.repo-rw-r--r--.1rootroot398Aug1722:01nginx.repo[[email protected]]#pwd/etc/yum.repos.d接下来可以直接使用yum-yinstallnginx则是直......
  • Jira从4.4.5升级到6.4.14实施方案
    1、开始之前1.1、停止当前所用插件1.2、确认插件版本目前公司4.4.4版本使用了两个第三方插件。插件名称版本用途待升级版本备注issue-alternative-assignee1.6.3流程中人员选择插件1.7.81.6.3对应Jira4.4.41.7.8对应Jira6.4.14JIRASuiteUtilities......
  • openEuler 22.03 LTS 升级到 openEuler 24.03 LTS
    升级前准备cd/etc/yum.repos.d/sudocpopenEuler.repoopenEuler.repo_2203lts_backsudovimopenEuler.repo将22.03替换为24.03#generic-reposislicensedundertheMulanPSLv2.#YoucanusethissoftwareaccordingtothetermsandconditionsoftheMula......
  • 国产操作系统 离线部署MYSQL、NGINX、redis、JDK1.8
    目录1.1、龙蜥操作系统8.4【AnolisOS8.4GA】1.2、安装关键步骤说明2.1、安装必要的系统组件2.2、配置JDK2.3、安装redis2.4、安装nginx2.5、安装mysql3.1、启用防火墙3.2、开放业务端口3.3、修改SSH端口号为100223.4、配置特定端口指定IP访问4.1、网络设置4.2......
  • WindowsServer系统下nginx代理问题
    部署vue打包后的dist文件夹后,重启nginx发现没生效,操作如下:1.停止redis,删除浏览器缓存并用无痕模式访问发现依然不生效,试着各种办法重新导入数据库数据也不行,nginx.exe-sstop依然能访问2.搜索发现可能是WindowsServer系统的问题,于是执行命令nginx-squit退出nginx......
  • RTL9220固件分享,RTL9220硬盘盒固件升级工具下载
    RTL9220是瑞昱半导体(Realtek)推出的88针脚10mm×10mmQFN封装的单芯片,内建ARGB控制器,提供USB3.2Gen2×2(20Gbps)接口,支持双口PCIe3.0×4lanesNVMe1.3或SATAGen3(6Gbps)固态硬盘。在USB转SATA模式下,RTL9220支持SATAGen3规格,为每个端口提供6Gbps的带宽且具有与SATAGen2/Gen1......
  • 部署Nginx负载均衡+动静分离的群集
    目录一、Nginx应用二、正向代理与反向代理1.1正向代理1.2反向代理三、负载均衡1.轮询(RoundRobin)2.最小连接数3.IP  hash:4.加权轮询5.最少事件算法6.一致性hash一、Nginx应用Nginx是一款非常优秀的HTTP服务器软件支持高达50000个并发连接数的响应拥有强......