当前位置: 首页 > article >正文

Linux环境安装Nginx及版本升级指南

Linux环境安装Nginx及版本升级指南

一、安装Nginx

1. 安装前准备

# 更新系统软件包(Ubuntu/Debian)
sudo apt update && sudo apt upgrade -y# CentOS/RHEL
sudo yum update -y

2. 安装依赖库

# Ubuntu/Debian
sudo apt install -y curl wget build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev# CentOS/RHEL
sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

3. 通过包管理器安装(推荐)

Ubuntu/Debian
# 添加官方仓库
sudo apt install -y curl gnupg2
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list# 安装Nginx
sudo apt update
sudo apt install -y nginx
CentOS/RHEL
# 创建仓库文件
vi /etc/yum.repos.d/nginx.repo# 输入以下内容:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key# 安装
sudo yum install -y nginx

4. 验证安装

# 查看版本
nginx -v# 启动服务
sudo systemctl start nginx
sudo systemctl enable nginx# 检查状态
systemctl status nginx# 访问测试
curl http://localhost

二、Nginx版本升级

方法1:通过包管理器升级

Ubuntu/Debian
sudo apt update
sudo apt install --only-upgrade nginx
CentOS/RHEL
sudo yum update nginx

方法2:手动编译升级(适用于自定义安装)

# 下载最新版
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-*.tar.gz
cd nginx-1.25.3# 停止旧服务
sudo systemctl stop nginx# 配置编译参数(需与原配置一致)
./configure [原配置参数]  # 使用 `nginx -V` 查看原有参数# 编译安装
make
sudo make install# 验证新版本
/usr/local/nginx/sbin/nginx -v# 启动服务
sudo systemctl start nginx

方法3:平滑升级(零停机)

# 1. 备份旧二进制文件
sudo cp /usr/sbin/nginx /usr/sbin/nginx.old# 2. 编译新版本(参考方法2步骤)
# 3. 替换二进制文件
sudo cp objs/nginx /usr/sbin/nginx# 4. 发送USR2信号给主进程
sudo kill -USR2 `cat /run/nginx.pid`# 5. 退出旧worker进程
sudo kill -QUIT `cat /run/nginx.pid.oldbin`

三、注意事项

  1. 配置文件备份
    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    
  2. 检查配置文件语法
    sudo nginx -t
    
  3. 防火墙设置
    sudo ufw allow 80/tcp  # Ubuntu
    sudo firewall-cmd --permanent --add-port=80/tcp  # CentOS
    

四、常见问题解决

  1. 端口冲突
    检查占用端口:sudo ss -tulnp | grep :80

  2. 服务启动失败
    查看日志:journalctl -u nginx -b

  3. 模块缺失
    重新编译时添加所需模块:./configure --with-http_ssl_module


通过以上步骤,您可以轻松完成Nginx的安装和版本升级。建议生产环境优先使用包管理器升级方式以确保稳定性。如果有定制化需求,推荐使用平滑升级方案。


相关文章:

Linux环境安装Nginx及版本升级指南

Linux环境安装Nginx及版本升级指南 一、安装Nginx 1. 安装前准备 # 更新系统软件包(Ubuntu/Debian) sudo apt update && sudo apt upgrade -y# CentOS/RHEL sudo yum update -y2. 安装依赖库 # Ubuntu/Debian sudo apt install -y curl wget…...

选开源CMS建站系统时,插件越多越好吗?

在选择开源CMS建站系统时,插件数量并不是唯一的衡量标准,更不能简单地说“插件越多就越好”,还是需要综合评估来考虑选择结果,以下是有关选择开源CMS系统时对插件数量的考量。 插件数量的优势插件数量可能带来的问题功能丰富性&a…...

Windows对比MacOS

Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1:打开环境变量设置窗口步骤 2:添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1:打开终端步骤 2:编辑环境变量配置文件步骤 3&#xff1…...

使用 Python 实现基于 AGA8 GERG - 2008 方程计算掺氢天然气压缩因子的示例代码

AGA8 GERG - 2008 方程是用于计算天然气混合物热力学性质的一种方法,下面是一个使用 Python 实现基于 AGA8 GERG - 2008 方程计算掺氢天然气压缩因子的示例代码。需要注意的是,AGA8 GERG - 2008 方程非常复杂,完整实现需要大量的系数和详细的…...

开源绝版经典小游戏合集

随着生活节奏的日益加快,我们常常需要一些小游戏来缓解疲惫的身心。过去,Windows 7自带的扫雷、蜘蛛纸牌等小游戏深受大家喜爱,但随着系统的更新换代,这些经典游戏逐渐淡出了人们的视野。我也曾花费不少时间寻找这些游戏&#xff…...

给虚拟机配置IP

虚拟机IP这里一共有三个地方要设置,具体说明如下: (1)配置vm虚拟机网段 如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。具体操作是:点击编辑→虚拟网络编辑器 选择VMne…...

YOLOv12以注意力机制为核心的架构:主要特点、创新点、使用方法

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

GD32F450 使用

GB32F450使用 1. 相关知识2. 烧写程序3. SPI3.1 spi基础3.2 spi代码 4. 串口4.1 串口引脚4.2 串口通信代码 问题记录1. 修改晶振频率 注意:GD32F450 总共有三种封装形式,本文所述的相关代码和知识,均为 GD32F450IX 系列。 1. 相关知识 参数配…...

Linux 动静态库和_make_进度条(一)

文章目录 一、如何理解条件编译二、动静态库1. 理论2. 实践3. 解决普通用户的sudo问题4. 技术上理解库 三、make和make_file 一、如何理解条件编译 1. gcc code.c -o code -DM 命令行级别的宏定义预处理的本质就是修改编辑我们的文本代码 头文件展开到源文件中去注释宏替换条…...

Android 图片压缩详解

在 Android 开发中,图片压缩是一个重要的优化手段,旨在提升用户体验、减少网络传输量以及降低存储空间占用。以下是几种主流的图片压缩方法,结合原理、使用场景和优缺点进行详细解析。 效果演示 直接先给大家对比几种图片压缩的效果 质量压缩 质量压缩:根据传递进去的质…...

C# 牵手DeepSeek:打造本地AI超能力

一、引言 在人工智能飞速发展的当下,大语言模型如 DeepSeek 正掀起新一轮的技术变革浪潮,为自然语言处理领域带来了诸多创新应用。随着数据隐私和安全意识的提升,以及对模型部署灵活性的追求,本地部署 DeepSeek 成为众多开发者和…...

普通人高效使用DeepSeek指南?

李升伟 整理 DeepSeek(深度求索)作为一款智能搜索引擎或AI工具,普通人可以通过以下方式高效利用它,提升学习、工作和生活效率: --- ### **一、基础功能:精准搜索** 1. **明确需求提问** 用自然语言…...

卢卡斯定理判断组合数奇偶(Codeforces Round 1006 (Div. 3)——F)

文章目录 组合数奇偶判断题意思路综上 组合数奇偶判断 【用杨辉三角阐释Lucas定理】https://www.bilibili.com/video/BV14F411P7ES?vd_source67186f29c3efb728bcff34035cf5aba2 这个视频可以简单的领会一下精神,卢卡斯定理也就是用于组合数取模。 奇偶性通过对2…...

ECharts组件封装教程:Vue3中的实践与探索

在日常的前端开发中,ECharts 作为一款强大且易用的图表库,被广泛应用于数据可视化场景。为了更好地在 Vue3 项目中复用 ECharts 功能,我们可以将其封装成一个组件。本文将带大家一步步实现 ECharts 的 Vue3 组件封装,并演示如何在父组件中调用和使用。 一、封装 ECharts 组…...

LLM中的Benchmark是什么

LLM中的Benchmark是什么 “DeepSeek推动价值重估Benchmark” DeepSeek这家公司或其相关技术的发展,促使Benchmark这家机构对相关资产或企业的价值进行重新评估。“Benchmark”在这里是一家研究机构或金融分析机构。 “Benchmark”常见的意思是“基准;水准点,基准点”,作…...

【新加坡】软件工程师工签政策、求职指南

文章目录 关键要点就业准证要求求职平台注意事项详细报告就业准证(EP)要求求职平台与投递渠道注意事项与求职建议表格:求职平台对比额外考虑关键引用 关键要点 去新加坡工作需要申请就业准证(EP),通常要求…...

梯度下降法(Gradient Descent) -- 现代机器学习的血液

梯度下降法(Gradient Descent) – 现代机器学习的血液 梯度下降法是现代机器学习最核心的优化引擎。本文从数学原理、算法变种、应用场景到实践技巧,用三维可视化案例和代码实现揭示其内在逻辑,为你构建完整的认知体系。 优化算法 一、梯度下降法的定义…...

CMake宏定义管理:如何优雅处理第三方库的宏冲突

在C/C项目开发中,我们常常会遇到这样的困境: 当引入一个功能强大的第三方库时,却发现它定义的某个宏与我们的项目产生冲突。比如: 库定义了 BUFFER_SIZE 1024,而我们需要 BUFFER_SIZE 2048库内部使用 DEBUG 宏控制日志…...

【计算机网络】常见tcp/udp对应的应用层协议,端口

TCP 和 UDP 对应的常见应用层协议 📌 基于 TCP 的应用层协议 协议全称用途默认端口HTTPHyperText Transfer Protocol超文本传输协议80HTTPSHTTP Secure加密的超文本传输协议443FTPFile Transfer Protocol文件传输协议(20 传输数据,21 控制连…...

微服务学习(2):实现SpringAMQP对RabbitMQ的消息收发

目录 SpringAMQP是什么 为什么采用SpringAMQP SpringAMQP应用 准备springBoot工程 实现消息发送 SpringAMQP是什么 Spring AMQP是Spring框架下用于简化AMQP(高级消息队列协议)应用开发的一套工具集,主要针对RabbitMQ等消息中间件的集成…...

《操作系统 - 清华大学》 9 -2:进程调度:调度原则

进程调度策略:原则、指标与权衡 在计算机系统中,进程调度策略至关重要。我们讲的就是有不同的这种调度策略,那么调度的原则是什么呢?原则就是选择某一个进程执行的依据,即要基于什么样的标准来挑选最合适的进程去执行…...

CSS—选择器详解:5分钟动手掌握选择器

个人博客:haichenyi.com。感谢关注 1. 目录 1–目录2–引言3–种类4–优先级 引言 什么是选择器? CSS选择器是CSS(层叠样式表)中的一种规则,用于指定要应用样式的HTML元素。它们就像是指向网页中特定元素的指针&#…...

Java——String

在 Java 中,String 类是用于表示不可变字符序列的核心类,提供了丰富的 API 用于操作字符串。以下是 String 类的关键特性和常用方法详解: 一、String 的核心特性 不可变性(Immutable) 一旦创建,字符串内容不…...

Channel State Information 信道状态信息

Channel State Information(CSI,信道状态信息)是无线通信系统中的一个重要概念,指的是接收端或发送端对无线信道特性的估计和反馈。CSI可以用于优化无线通信性能,例如信道均衡、预编码、波束成形等,以提高数…...

python中单例模式应用

数据库连接池单例模式 1. 为什么使用单例模式 创建数据库连接是一个昂贵的过程(涉及网络通信、认证等)。单例模式的连接池可以在程序启动时初始化一组连接,并在整个生命周期中重用这些连接,而不是每次请求都新建连接。同时还可…...

StarRocks 在爱奇艺大数据场景的实践

作者:林豪,爱奇艺大数据 OLAP 服务负责人 小编导读: 本文整理自爱奇艺工程师在 StarRocks 年度峰会的分享,介绍了爱奇艺 OLAP 引擎演化及引入 StarRocks 后的效果。 在广告业务中,StarRocks 替换 ImpalaKudu 后&#x…...

Easy Trans Spring Boot Starter ---Spring系列的字段翻译库

Easy Trans Spring Boot Starter 使用文档 1. 简介 easy-trans-spring-boot-starter 是一个基于 Spring Boot 的库,用于简化数据翻译和转换操作。它可以帮助你将数据库中的枚举值、状态码等转换为用户友好的文本,或者将一种数据格式转换为另一种格式。…...

JAVA入门——IO流

一、了解File类 这个类里面提供了一些文件相关的方法,了解即可,方法有很多,不好背下面这个是最常用的只能对文件本身操作,不能读取数据 public File[] listFiles();//获取当前路径下的所有内容 注意:如果是需要权限才…...

Spring Boot 流式响应豆包大模型对话能力

当Spring Boot遇见豆包大模型:一场流式响应的"魔法吟唱"仪式 一、前言:关于流式响应的奇妙比喻 想象一下你正在火锅店点单,如果服务员必须等所有菜品都备齐才一次性端上来,你可能会饿得把菜单都啃了。而流式响应就像贴…...

Android Binder 用法详解

Binder 是 Android 系统中的一种进程间通信(IPC)机制,它允许不同进程之间进行高效通信。Binder 在 Android 系统中被广泛使用,例如在 Activity 与 Service 的交互中。 Binder 的基本组成 实现 Binder 通信通常包含以下几个关键部…...