基于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/...
GPU算力优化实践:GTE-Chinese-Large在RTX 4090 D上的推理性能实测
GPU算力优化实践:GTE-Chinese-Large在RTX 4090 D上的推理性能实测 1. 模型介绍与背景 GTE-Chinese-Large是阿里达摩院推出的通用文本向量模型,专门针对中文语义理解场景进行了深度优化。这个模型能够将任意长度的文本转换为高质量的1024维向量表示&…...
如何用Unity打造一款MMORPG:从零开始的全流程实战教程
如何用Unity打造一款MMORPG:从零开始的全流程实战教程 当《魔兽世界》《最终幻想14》等经典MMORPG持续创造商业奇迹时,许多开发者都怀揣着打造下一个爆款的梦想。Unity引擎凭借其跨平台能力和完善的工具链,已成为独立团队和中小厂商开发大型多…...
OWL ADVENTURE与Git协作:AI视觉项目的版本管理与团队开发实践
OWL ADVENTURE与Git协作:AI视觉项目的版本管理与团队开发实践 做AI视觉项目,尤其是用OWL ADVENTURE这类框架时,最头疼的往往不是模型调参,而是项目本身的管理。你有没有遇到过这种情况:同事改了一个配置文件ÿ…...
OpenClaw浏览器自动化实战:百川2-13B驱动的智能信息检索系统
OpenClaw浏览器自动化实战:百川2-13B驱动的智能信息检索系统 1. 为什么需要自动化信息检索 作为一名技术研究者,我每天需要跟踪大量行业动态和论文进展。传统的手动搜索-阅读-摘录流程效率极低,经常出现以下痛点: 重复劳动&…...
4个让OneNote效率倍增的开源效率工具:Markdown全功能增强方案
4个让OneNote效率倍增的开源效率工具:Markdown全功能增强方案 【免费下载链接】NoteWidget Markdown add-in for Microsoft Office OneNote 项目地址: https://gitcode.com/gh_mirrors/no/NoteWidget 一、问题发现:OneNote的专业创作短板与解决方…...
实时交易系统架构设计:从事件驱动到向量化框架的终极指南
实时交易系统架构设计:从事件驱动到向量化框架的终极指南 【免费下载链接】awesome-systematic-trading A curated list of insanely awesome libraries, packages and resources for systematic trading. Crypto, Stock, Futures, Options, CFDs, FX, and more | 量…...
AnotherRedisDesktopManager:让Redis管理变得简单高效的5个理由
AnotherRedisDesktopManager:让Redis管理变得简单高效的5个理由 【免费下载链接】AnotherRedisDesktopManager qishibo/AnotherRedisDesktopManager: Another Redis Desktop Manager 是一款跨平台的Redis桌面管理工具,提供图形用户界面,支持连…...
从《巴伦周刊》谈起,我们该如何保住 SRE 的直觉?
大多数 AI 依然停留在执行层面,它们只能在 Demo 里写写脚本。一旦丢进真实的生产集群,面对复杂的资源依赖和权限限制,它们很难像人类专家那样,给出真正能拍板的建议。最近,《巴伦周刊》对 Chaterm 的报道引起了我的注意…...
05-OpenClaw 自动生成 PPT 实战:每天节省 3 小时
作者:程序员小明儿 字数:约 9000 字 阅读时间:约 25 分钟 难度:⭐⭐⭐ 中级 系列:OpenClaw 实战 16 例(第 5 篇) 前置条件:已完成 OpenClaw 环境部署和基础配置写在前面 你是不是也这…...
RK3588开发板跑YOLOv5视频流demo,遇到Segmentation fault别慌!保姆级core文件生成与调试指南
RK3588开发板YOLOv5视频流推理崩溃排查:从Segmentation fault到精准调试全攻略 当你在RK3588开发板上满心期待地运行YOLOv5视频流推理demo时,屏幕上突然闪现的"Segmentation fault (core dumped)"就像一盆冷水浇灭了热情。这种崩溃提示信息量极…...
