记一次生产升级事件(nginx)

生产环境必看:Nginx版本更新(包管理器+源码)避坑全攻略 本篇文章给大家整理了 Nginx版本更新(包管理器升级、源码平滑升级)中最常见的12个问题 ,每个问题都对应“报错场景+原因分析+可直接复制的解决方案”,覆盖新手到资深运维的高频痛点,全程实战落地,看完更新Nginx再也不踩雷。 阅读详情

背景

咸鱼君所在公司的安全部门, 扫描出项目的生产服务安全漏洞,并且很负责任的提供了两份扫描文档,

一份针对nginx(1.1.6),
一份针对php(7.1.3),

并限期一周内改善完!

咸鱼君粗略一扫,全都是服务软件的漏洞,

于是乎, 两个选择摆在眼前:

1.根据文档,按图索骥, 一个补丁一个补丁的“劳模打补丁”;
2.直接升级软件到最新版, 当然, 得确保服务的代码必须要适配!

于是咸鱼君“认真”考虑了一下(实在是懒,补丁太多,当然,也是觉得升级了对应用代码影响不大), 决定升级服务软件来解决漏洞!

下面,详细介绍咸鱼君的升级过程~

评估升级风险!

有相似需求的朋友一定要认真评估“直接升级服务软件版本”方案是否适合自己的业务, 因为服务软件的版本每次升级都会有些变化, 比如php就会舍弃一些函数, 万一项目代码用到了, 结果你直接升级了php
, 最后导致生产的服务代码跑不起来,那就悲剧了!!

评估升级风险的方式,咸鱼君采用的是本地升级服务软件,测试项目代码是否正常~

有条件的也可以搞台克隆生产环境的服务器, 而后测试升级操作~

备份备份备份!

先找到nginx 的安装目录
whereis nginx
查看当前版本(1.1.6)
/usr/local/nginx/sbin/nginx -v
注意是大V,罗列nginx的configure编译时的参数.这个要保存下,编译新nginx时要用!
/usr/local/nginx/sbin/nginx -V
--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx 
--modules-path=/usr/lib64/nginx/modules 
--conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--pid-path=/var/run/nginx.pid 
--lock-path=/var/run/nginx.lock 
--http-client-body-temp-path=/var/cache/nginx/client_temp 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp 
--user=nginx 
--group=nginx 
--with-file-aio 
--with-threads 
--with-ipv6 
--with-http_addition_module 
--with-http_auth_request_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_mp4_module 
--with-http_random_index_module 
--with-http_realip_module 
--with-http_secure_link_module 
--with-http_slice_module 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_sub_module 
--with-http_v2_module 
--with-mail 
--with-mail_ssl_module 
--with-stream 
--with-stream_ssl_module 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong 
--param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
备份老版的nginx 执行文件
这里注意,其实编译安装新nginx时如何执行的是平滑升级命令
sudo make upgrade 

######会备份当前的nginx, 在/usr/local/nginx/sbin/下会出现 nginx.old所以可以不手动备份~ 另外,nginx升级无需备份conf配置文件,因为升级不会覆盖这些~

sudo cp  /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx_bac 

Nginx升级

查看当前系统版本
cat /proc/version
uname -a 
去http://nginx.org/en/download.html 找到最新版“稳定”的nginx (毕竟是生产,还是找稳定的最新版!),找到最新版nginx后我们ssh登陆生产服务器即可
切换到用户主目录
cd ~     
下载
wget https://nginx.org/download/nginx-1.16.1.tar.gz 
解压
tar -zxvf nginx-1.16.1.tar.gz  
配置编译参数
cd nginx-1.16.1    
// ***就是把之前的查出来的编译参数填充进去!   
./configure --prefix= ****    
编译
make   
平滑升级
sudo make upgrade   
安装新nginx!
sudo make install 
升级完成,我们再看下版本
/usr/local/nginx/sbin/nginx -v  
要是版本不对也可手动执行
sudo /usr/local/nginx/sbin/nginx -s reload 
也可以暴力点(不建议)
sudo /usr/local/nginx/sbin/nginx -s stop  
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
最后,确认服务正常,去访问下生产的服务,是不是正常,

如果发现生产有问题, 立刻

恢复旧服务
sudo /usr/local/nginx/sbin/nginx.old 

请关注我的订阅号

订阅号.png

高可用环境升级Nginx心得 Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,且功能丰富,支持很多第三方模块的扩展。本文档针对此次公司nignx升级的操作步骤和升级心得进行分享。 阅读详情

相关推荐

Nginx核心架构与配置实战:从事件驱动模型到生产环境部署

在构建高并发Web服务时,事件驱动和非阻塞I/O是提升性能的核心原理。Nginx正是基于此模型,通过高效的工作进程和事件通知机制(如epoll),实现了极低的资源消耗和高并发处理能力。这种架构使其在反向代理、负载均衡和静态资源服务等场景中展现出巨大技术价值,成为现代Web架构的基石。本文聚焦于Nginx的实战配置,深入解析其进程结构、信号管理机制,并涵盖从基础静态服务到高级负载均衡、HTTPS配置与安全加固的完整应用场景。通过结合压力测试与监控,确保系统在生产环境中的稳定与高效。

weixin_33701294的博客 420

NGINX常见的安全风险有哪些?底层原理是什么?

NGINX 是一种高性能、可靠的 Web 服务器和反向代理服务器,由于其广泛应用和高性能特性,也成为攻击者攻击的目标之一。缓冲区溢出攻击:缓冲区溢出是指攻击者向服务器发送超过服务器处理能力的数据,从而导致缓冲区溢出,攻击者可以通过缓冲区溢出攻击来执行任意代码或者控制服务器。未授权访问:未授权访问是指攻击者利用应用程序中的漏洞或者直接访问 NGINX 服务器,获取服务器的敏感信息或者执行非法操作。HTTP 劫持:HTTP 劫持是指攻击者窃取用户的 HTTP 请求或者响应,从而获取用户的敏感信息。

长风破浪会有时的博客 1154

Nginx性能调优实战:从事件模型到生产级配置闭环

Nginx并非简单HTTP转发器,而是基于epoll/kqueue的事件驱动型网络引擎。其性能优化本质是建立业务流量模型——通过QPS、平均响应时间与连接生命周期反推worker_processes和worker_connections合理值;利用open_file_cache降低iowait、gzip_vary+gzip_min_length避免Content-Encoding冲突,并结合ssl_session_cache与OCSP Stapling提升HTTPS首字节性能。本文聚焦真实生产场景中的可验证

cuanji3287的博客 483

Nginx 版本升级

本文提供Nginx版本升级的完整指南,涵盖多种升级方式(源码编译、包管理、Docker等)及适用场景。重点介绍了生产环境推荐的平滑升级流程,包括版本检查、环境准备、源码下载、编译配置等关键步骤。特别强调必须保留旧版本的编译参数,确保新版本兼容性。同时提供了升级前检查清单、回滚方案和常见模块依赖安装说明,适用于从1.18.0升级到1.20.2等版本迁移场景。

qq_45619439的博客 1815

Nginx核心原理与高并发实战:事件驱动、反向代理与生产避坑指南

Nginx是一种基于事件驱动模型的高性能HTTP服务器与反向代理,其单线程异步非阻塞架构显著区别于传统多线程Web服务器(如Apache),在高并发场景下具备极低内存占用与超高吞吐能力。它通过epoll/kqueue机制实现万级连接复用,结合模块化配置体系,可灵活承担静态服务、API网关、负载均衡、SSL终结等多重角色。技术价值体现在毫秒级响应、零拷贝传输(sendfile)、智能缓存控制及HTTP/2与Brotli压缩支持。典型应用场景包括Vue/React前端路由404修复、502 Bad Gatewa

weixin_30512043的博客 435

Apache与Nginx核心差异:进程模型、事件驱动与生产配置实践

Web服务器是现代应用交付的基石,其底层架构直接决定并发能力、资源开销与运维韧性。Apache基于多进程/多线程MPM模型,强调模块深度集成与运行时稳定性,适合PHP嵌入式部署和强认证场景;Nginx则采用异步非阻塞事件驱动架构,以极低内存支撑高并发,依赖FastCGI等标准协议实现语言解耦。这种根本性设计差异,导致二者在HTTPS配置、反向代理健壮性、大文件上传(413错误)定位路径、Brotli压缩支持及配置容错机制上表现迥异。理解进程模型与事件循环原理,是规避502网关错误、if指令陷阱、SSL环境变

weixin_30265103的博客 510

nginx存在安全漏洞,老版本nginx不停服务热升级

1.场景描述 安全部通知:nginx存在”整数溢出漏洞”,经测试2017年4月21日之后的版本无问题,将openresty升级到最新版本。Nginx升级到1.13.2之后的版本。 软件老王需要对项目使用的nginx进行升级,为了最小化影响,采用不停服务对nginx进行热升级。 2. 解决方案 nginx拟升级到17.2,2019年7月的版本。 2.1 整体备份 [root@ruanjianlaow...

软件老王 1479

Ubuntu视频播放器怎么选?VLC、mpv、SMPlayer硬解与字幕配置指南

在Linux系统中,视频播放体验取决于播放器、解码器与显卡驱动的协同。硬件解码通过VA-API或VDPAU将解码任务交给GPU,能显著降低CPU占用,解决4K高码率视频卡顿问题。对于Ubuntu用户,合理配置解码环境与播放器,可流畅播放HEVC、多音轨及ASS特效字幕视频。无论是日常观影、番剧追更还是家庭影院场景,选择合适的播放器并正确启用硬解,都是提升体验的关键。本文围绕Ubuntu平台,详解VLC、mpv、SMPlayer等播放器的安装、硬解配置与常见问题排查,帮助你在Linux上获得流畅的本地视频播放

weixin_33801856的博客 505

记一次生产升级事件(php)

背景 咸鱼君所在公司的安全部门, 扫描出项目的生产服务安全漏洞,并且很负责任的提供了两份扫描文档, 一份针对nginx(1.1.6), 一份针对php(7.1.3), 并限期一周内改善完! 咸鱼君粗略一扫,全都是服务软件的漏洞, 于是乎, 两个选择摆在眼前: 1.根据文档,按图索骥, 一个补丁一个补丁的“劳模打补丁”; 2.直接升级软件到最新版, 当然, 得确保服务的代码必须要适配! 于是咸鱼君“...

CTO技术的博客 670

不用U盘也能装Ubuntu?手把手教你用EasyUEFI搞定双系统(附企业版资源)

本文详细介绍了无需U盘即可安装Ubuntu双系统的方法。通过使用EasyUEFI工具,在Windows环境下创建虚拟启动分区并配置UEFI引导,即可直接从硬盘启动Ubuntu安装程序。该方法特别适合开发者或技术爱好者快速搭建Linux开发环境,操作安全便捷,无需额外物理介质。

weixin_29215391的博客 285

从零到一:用ROS2和Gazebo搭建Franka机械臂仿真环境(避坑指南)

本文详细介绍了如何使用ROS2和Gazebo从零开始搭建Franka机械臂的仿真环境,包括环境准备、ROS2包安装、控制器配置及常见问题解决方案。特别针对关节位置控制等核心功能提供了实用代码示例和避坑指南,帮助开发者高效构建机器人算法验证平台。

weixin_29061465的博客 458

Nginx 平滑升级指南

Nginx 的平滑升级是一种无中断的升级方式,能够在不影响现有连接的情况下,将 Nginx 从旧版本升级到新版本。

XMYX-0 2840

CAD制图

CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。·CAD三维开发是指使用计算机程序和工具来创建、编辑和操作三维模型、图形和设计的过程。它在工程、建筑、制造和游戏等领域广泛应用。CAD三维开发可能涉及到复杂的图形算法、性能优化、并行计算等方面的内容,因此需要深入学习和实践,以提高开发的效率和质量。

RZer的博客 1644

nginx平滑升级版本

nginx平滑升级版本 1:nginx平滑升级的概述: 随着网络并发访问量越来越高,nginx web服务器也越来越流行,nginx版本换代越来越频繁,1.15.2版本的nginx更新了许多新功能,生产环境中版本升级必然的但是线上业务不能停,此时nginx的升级就是运维的重要工作了。 2:nginx平滑升级原理 (1): 多进程模式下的请求分配方式: Nginx默认工作在多进程模式下,即主进程(master process)启动后完成配置加载和端口绑定等动作,fork出指定数...

小小关的博客 4764

智能座舱架构与芯片- (9) 音频篇 上

从A2B收发器衍生出来的简化产品具备各种级别的功能,例如端点从节点(不支持TDM)、简化型主节点(支持较短的电缆和更少的从节点数量),以及简化型端点从节点(支持较短电缆和更少的PDM输入)。例如,AVB中的talker和listener是不同的设备,它们的参考时钟源可能并不相同。传统的车载收音机通过天线接收无线电信号,然后由调谐模块(Tuner)进行信号调谐,信道过滤,信道均衡,多路改善,信号解调等,转为数字信号后再交给DSP进行立体声解码,噪声抑制,弱信号处理,最后从车载音响系统进行播放。

joanna_xiao的博客 4904

30天入门 SAP BTP 开发系列之七:动手在 SAP BTP 上开发第一个 ABAP 程序

本教程从理论转向实践,指导如何在SAP BTP上创建首个ABAP程序。首先通过Booster向导在Trial账号中配置ABAP环境,需确保已启用Cloud Foundry并创建Space。成功创建ABAP实例后,使用ABAP Development Tool连接环境:下载服务密钥文件,导入工具获取连接URL,即可建立项目开始编码。教程提供了从环境搭建到开发工具配置的完整流程,帮助ABAP开发者快速上手BTP云开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1668

nginx平滑升级

一、解释nginx的平滑升级 随着网站并发访问量越来越高,nginx web 服务器也越来越流行,nginx 版本换代越来越频繁,1.10.2版本的nginx更新了许多新功能,生产环境中版本升级必然的,但是线上业务不能停,此时nginx的升级就是运维的重要工作了。 二、nginx平滑升级原理 多进程模式下的请求分配方式 Nginx默认工作在多进程模式下,即主进程(master process)启动...

YY_XDX的博客 370

详解vit_base_patch16_224

ViT-Base模型的核心思想是将输入图像划分为多个小块(patches),并使用Transformer架构来处理这些小块。具体来说,ViT-Base使用16x16像素的patch大小,输入图像的尺寸为224x224像素,这意味着每张图像将被划分为49个patch(22416×22416=14×14=19616224​×16224​=14×14=196个patch)。ViT-Base(ViT-B/16)通过将图像处理任务转化为序列处理任务。

具身机器人和通用AI 3221

Nginx-学习nginx这一篇就够了、版本平滑升级

Nginx是一个高性能的HTTP的反向代理web服务器

qq_38055805的博客 3706

详解Pytorch求导

本文主要详解Pytorch求导,希望能对学习Pytorch的同学有所帮助。 文章目录 1. pytorch求导问题 2. pytorch三大类求导代码示例 2.1 标量求导 2.2 向量求导&矩阵求导

weixin_43178406的博客 3072

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

编译安装以及升级Nginx

Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯Rambler.ru站点开发,源代码以BSD许可证的形式发布。Nginx对比Apache,其显著特点是内存占用小,并发能力强。在标准服务器上,Nginx通常比Aapche所能够提供的并发量高5-10倍。nginx newsNginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。

Kzxjjjs的博客 1575

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

从漏洞预警到生产修复:企业级Nginx安全升级全流程(CVE-2022-41741案例)

本文以CVE-2022-41741漏洞为例,详细阐述了企业级Nginx安全升级的标准化全流程。内容涵盖从漏洞情报获取与精准影响评估、测试环境构建与验证,到生产环境灰度发布与回滚方案设计,最后强调升级后的持续观察与知识沉淀,为企业构建主动、可控的安全响应体系提供了一套完整的方法论。

pz890123的博客 681

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Nginx平滑升级

一、nginx平滑升级概述随着网站并发访问量越来越高,nginx web 服务器也越来越流行,nginx 版本换代越来越频繁,1.16.2版本的nginx更新了许多新功能,生产环境中版本升级必然的,但是线上业务不能停,此时nginx的升级就是运维的重要工作了。 二、nginx平滑升级原理多进程模式下的请求分配方式 Nginx默认工作在多进程模式下,即主进程(master pro...

dee_1230的博客 243

【NGINX 做平滑升级】

主进程支持的信号:TERM, INT: 立刻退出QUIT: 等待工作进程结束后再退出KILL: 强制终止进程HUP: 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。USR1: 重新打开日志文件USR2: 启动新的主进程,实现热升级WINCH: 逐步关闭工作进程工作进程支持的信号:TERM, INT: 立刻退出QUIT: 等待请求处理结束后再退出USR1: 重新打开日志文件。

qq_43606536的博客 434

Nginx配置中添加支持WebSocket、Nginx允许多个域名又不使用*号的跨域访问配置以及关于nginx进程模型、事件模型、WEB事件、信号、定时器等nginx运行机制介绍

Nginx自从1.3版就支持WebSocket,也可以为WebSocket应用程序做反向代理和负载均衡。Websocket使用ws或wss作为统一资源标志符,类似于HTTP或HTTPS,默认Websocket的ws协议使用80端口;运行在TLS之上时,其中wss表示在 TLS 之上的 Websocket,相当于HTTPS。wss协议默认使用443端口。wss就是ws基于SSL的安全传输。WebSocket一种在单个TCP连接上进行全双工通讯、允许服务端主动向客户端推送数据的协议。

本博客记录了从2014年以来在工作学习中遇到的技术问题、解决方法以及部分个人人生经历、经验等内容。 2269

Nginx- 生产环境 Nginx 的多进程与多线程配置优化

🔍 Nginx 生产环境多进程与多线程配置优化 本文深入探讨 Nginx 在高并发场景下的性能优化策略,重点分析多进程与多线程模型的优劣势及最佳实践。通过对比测试数据,揭示了 Nginx 事件驱动模型相比传统多线程架构的性能优势(内存节省15倍,吞吐量提升2倍)。文章提供了详细的配置指南,包括: 多进程优化: worker_processes设置原则(静态资源与动态代理的不同策略) worker_cpu_affinity绑核技术(实测提升23% QPS) NUMA架构下的高级调优技巧 异步I/O机制: e

千淘万漉虽辛苦,吹尽狂沙始到金 1万+
上一篇: 腾讯面试题, 2020年,让我们愉快的赛一次马!
下一篇: 记一次生产升级事件(php)
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值