基于Linux直接安装的Nginx版本升级方法
引言
随着版本的迭代和漏洞的发现,Nginx作为一款软件避免不了打补丁的命运。
以下基于Linux直接安装的Nginx版本升级。
以下操作均在本地虚拟机中操作验证,请验证后再线上操作。基于centos7测试。
前置资源
- 获取nginx的最新源码版本网址: http://freenginx.org/
- 查看nginx的版本命令:
nginx -V
基于源码安装Nginx
安装编译环境
nginx基于c语言编写的,所以安装之前需要安装编译环境。
### 安装编译环境和依赖包
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
## 验证编译环境是否安装成功
gcc --versiongcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
逆向编译命令
nginx编译通过 ./configure 命令加指定参数来完成,对应的参数决定了应用程序的安装位置、日志文件位置、依赖库使用情况等。
所以在安装之前需要知道如下信息:
- 使用到的依赖库
- 程序安装位置
- 启用的模块
以上信息可以通过ngingx -V来获取。
## 进入nginx的安装目录
nginx -V
## 可以看到对应的配置参数信息
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
安装新版本nginx
- 到正式网站下载源码:http://freenginx.org/en/download.html 推荐Free版本 或者 http://nginx.org/en/download.html F5版本
freenginx 是nginx被F5收购出来的一个独立分支,由原来的nginx的核心人员维护,就像mariadb和mysql的关系。
- 上传源码到指定服务器,开始安装。
# 解压源码
tar -xf nginx-1.25.4.tar.gz
cd nginx-1.25.4
## 根据逆向得到的参数进行编译
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
## 如果缺少对应依赖库,可以通过如下命令安装
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
## 也可以到对应库的正式网站下载安装,通过命令指定安装位置,比如
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module --with-pcre=/root/install_app/pcre2-10.43
## 安装
make
make install
## 查看安装后的版本
/usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.25.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_stub_status_module --with-pcre=/root/install_app/pcre2-10.43
以上是通过覆盖的方式升级nginx,注意提前做好备份,避免数据丢失。
基于安装包安装Nginx
nginx在linux上做了很多分发包,包括debian、centos、ubuntu等。通过nginx官方的安装包升级nginx,可以避免编译过程的麻烦。
确认nginx是通过安装包安装的,可以通过安装路径查看。一般nginx的安装路径为分开的,包括任意路径可以执行nginx -V。
centos通过rpm -qa nginx查找nginx的安装包是否存在。
升级过程如下:
## 安装nginx的仓库源,访问 http://nginx.org/packages/centos/7/noarch/RPMS/ 下载 nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
## 安装nginx源
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
## 查看nginx安装包列表
yum --showduplicates list nginx
## 安装最新版本的nginx
yum install nginx.x86_64
## 验证版本
nginx -V
说明
以上就是nginx 1.21.5升级到1.25.4的过程。不同镜像版本可能升级过程不一致。
请在虚拟机中操作验证,请勿直接线上生产主机操作。
关于作者
来自一线全栈程序员nine的八年探索与实践,持续迭代中。欢迎关注“雨林寻北”或添加个人卫星codetrend(备注技术)。
相关文章:
基于Linux直接安装的Nginx版本升级方法
引言 随着版本的迭代和漏洞的发现,Nginx作为一款软件避免不了打补丁的命运。 以下基于Linux直接安装的Nginx版本升级。 以下操作均在本地虚拟机中操作验证,请验证后再线上操作。基于centos7测试。 前置资源 获取nginx的最新源码版本网址:…...
探索设计模式的魅力:状态模式揭秘-如何优雅地处理复杂状态转换
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,并且坚持默默的做事。 探索设计模式的魅力:状态模式揭秘-如何优雅地处理复杂状态转换 文章目录 一、案例…...
力扣hot100题解(python版10-12题)
哎- -最近本来就没时间写算法 这算法怎么还这么难。。。 10、和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1]…...
【算法】复杂度分析
第一章、如何分析代码的执行效率和资源消耗 我们知道,数据结构和算法解决的是“快”和“省”的问题,也就是如何让代码运行得更快,一级如何让代码更节省计算机的存储空间。因此,执行效率是评价算法好坏的一个非常重要的指标。那么&…...
车载电子测试学习内容
搜集了一些车载测试的学习内容,大家可以参考。...
STM32F103x 的时钟源
AHB (Advanced High-performance Bus) 高速总线,用来接高速外设的。 APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的,包含APB1 和 APB2。 APB1:上面连接的是低速外设,包括电源接口、备份接口、 CAN 、 US…...
【电路笔记】-RC放电电路
RC放电电路 文章目录 RC放电电路1、概述2、RC放电电路3、RC放电电路示例当电压源从完全充电的 RC 电路中移除时,电容器 C 将通过电阻 R 放电。 1、概述 RC 放电电路利用电阻器-电容器组合的固有 RC 时间常数以指数衰减率对电容器进行放电。 在之前的 RC 充电电路教程中,我们…...
【C++STL】STL容器详解
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...
缓存篇—缓存雪崩
什么是缓存雪崩 通常我们为了保证缓存中的数据与数据库中的数据一致性,会给 Redis 里的数据设置过期时间,当缓存数据过期后,用户访问的数据如果不在缓存里,业务系统需要重新生成缓存,因此就会访问数据库,并…...
力扣日记2.22-【回溯算法篇】47. 全排列 II
力扣日记:【回溯算法篇】47. 全排列 II 日期:2023.2.22 参考:代码随想录、力扣 47. 全排列 II 题目描述 难度:中等 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输…...
如何理解三大微分中值定理
文章看原文,自己写的只是备份 高等数学强化2:一元函数微分学 中值定理 极值点 拐点_一元函数中值定理-CSDN博客 高等数学强化3:一元函数积分学 P积分-CSDN博客 高等数学强化3:定积分几何应用-CSDN博客...
Linux--自定义shell
shell shell就是操作系统提供给用户与操作系统进行交互的命令行界面。它可以理解为一个用户与操作系统之间的接口,用户可以通过输入命令来执行各种操作,如文件管理、进程控制、软件安装等。Shell还可以通过脚本编程实现自动化任务。 常见的Unix系统中使…...
AIGC 实战:Ollama 和 Hugging Face 是什么关系?
Ollama和 Hugging Face 之间存在着双重关系: 1. Ollama是 Hugging Face 开发并托管的工具: Ollama是一个由 Hugging Face 自行开发的开源项目。它主要用于在本地运行大型语言模型 (LLM),特别是存储在 GPT 生成的统一格式 (GPT-Generated Un…...
Gitee教程2(完整流程)
1.配置git git config --global user.name "用户名" git config --global user.email "密码" 如何获取? gitee右上角加号点击新建仓库,仓库名随便起一个就行 找到这条命令,把这两句一个一个复制到vscode终端就行 2.创建g…...
Go 1.22 中的 for 循环新特性详解
目录 每次迭代都创建新变量 支持整数类型循环 小结 在 Go 语言中,for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活,有多种使用方式,包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。 在 1…...
igolang学习2,golang开发配置国内镜像
go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct...
R语言空间分析、模拟预测与可视化
随着地理信息系统(GIS)和大尺度研究的发展,空间数据的管理、统计与制图变得越来越重要。R语言在数据分析、挖掘和可视化中发挥着重要的作用,其中在空间分析方面扮演着重要角色,与空间相关的包的数量也达到130多个。在本…...
体育赛事直播系统软件开发
体育赛事直播系统的软件开发是一个复杂的项目,需要多个方面的准备和工作。以下是开发这样一个系统可能涉及的主要步骤和考虑因素: 需求分析和规划:首先需要明确系统的功能需求,包括直播视频的流媒体处理、用户管理、直播赛事安排…...
使用 kind 集群安装运行极狐GitLab Runner【上】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 关于 kind kind 是一个用来运行本地 Kubernetes 机群的工具&a…...
wine 源码 vk3d wine-gecko wine-mono 各版本 国内下载地址 中国科技技术大学源
下载地址 Index of /wine/...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
