如何选择?YUM 的便捷与编译的灵活:安装最新Nginx 全方位对比​

  • 时间:2025-11-26 20:41 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:本文旨在提供一份详尽的指南,协助您在 CentOS/RHEL 系统上部署最新版本的 Nginx。我们将深入探讨两种主流的安装方式:YUM 源安装(追求便捷稳定)和编译安装(追求定制灵活),并从原理到实践,完整展示安装、配置与服务的集成过程。一、Nginx 版本选择:明确你的需求在开始安装之前,正确选择版本是第一步。Nginx 官网主要提供四种类型的版本,其关系与选择策略如下图所示:Mainline

本文旨在提供一份详尽的指南,协助您在 CentOS/RHEL 系统上部署最新版本的 Nginx。我们将深入探讨两种主流的安装方式:YUM 源安装(追求便捷稳定)和编译安装(追求定制灵活),并从原理到实践,完整展示安装、配置与服务的集成过程。


一、Nginx 版本选择:明确你的需求

在开始安装之前,正确选择版本是第一步。Nginx 官网主要提供四种类型的版本,其关系与选择策略如下图所示:


如何选择?YUM 的便捷与编译的灵活:安装最新Nginx 全方位对比​


  • Mainline version(主线版本):集成了最新功能和错误修复的开发版,版本号一般为奇数(如 1.25.x)。虽然经过基本测试,但可能引入未知问题,不推荐用于生产环境
  • Stable version(稳定版本):经过充分测试的成熟版本,版本号一般为偶数(如 1.26.x)。这是生产环境的首选
  • Legacy versions(历史版本):过往的稳定版本,适用于需要回滚或特定兼容性的场景。
  • Pre-Built Packages(预编译包):Nginx 官方为不同 Linux 发行版提供的预编译软件包,是 yum 或 apt 安装的基础。

二、YUM 源安装:最快捷的稳定部署方案

这种方法通过配置 Nginx 官方提供的 YUM 源进行安装,优势在于依赖自动解决、后期升级管理方便,超级适合快速部署和运维标准化。

步骤 1:查看默认源版本(可选)

第一,检查系统默认 YUM 源(如 EPEL)中的 Nginx 版本,一般版本较旧。

yum info nginx

输出示例:

Available Packages
Name        : nginx
Version     : 1.20.1  # 版本较旧
Release     : 10.el7
Repo        : epel/x86_64

步骤 2:配置 Nginx 官方 YUM 源

创建 YUM 源配置文件
/etc/yum.repos.d/nginx.repo,并输入以下内容。此配置同时包含了稳定版和主线版源,默认启用稳定版。

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[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
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0  # 默认禁用主线版,如需安装,可改为 enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

步骤 3:安装并验证 Nginx

  1. 清除缓存并安装:
  2. yum clean all && yum makecache yum install nginx -y
  3. 验证安装版本:
  4. nginx -v
  5. 输出示例:nginx version: nginx/1.26.1
  6. 启动服务并设置开机自启:
  7. systemctl start nginx systemctl enable nginx
  8. 验证服务状态:
  9. systemctl status nginx curl -I 127.0.0.1

三、编译安装:高度定制化的专家方案

编译安装允许您自定义功能模块和安装路径,优势在于极致的灵活性和性能调优潜力,适合有特殊需求的高级用户。

步骤 1:下载源码并安装依赖

  1. 下载并解压最新源码包:
  2. wget https://nginx.org/download/nginx-1.28.0.tar.gz tar -xzf nginx-1.28.0.tar.gz cd nginx-1.28.0
  3. 安装编译所需的开发工具和库:
  4. yum -y install gcc make libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

步骤 2:系统环境准备

  1. 创建 Nginx 服务运行用户(系统用户):
  2. useradd -r -s /usr/sbin/nologin nginx
  3. 创建目标安装目录:
  4. mkdir -p /app/nginx

步骤 3:配置编译参数(核心步骤)

使用 ./configure 脚本进行预编译检查和环境配置。这是定制化的关键,您可以通过 ./configure --help 查看所有支持模块。

./configure 
  --prefix=/app/nginx           # 安装根目录
  --user=nginx                   # 运行用户
  --group=nginx                  # 运行组
  --with-http_ssl_module         # 启用 HTTPS/SSL 支持
  --with-http_v2_module          # 启用 HTTP/2 支持
  --with-http_realip_module      # 启用从请求头获取客户端真实 IP
  --with-http_stub_status_module  # 启用 Nginx 状态监控页
  --with-http_gzip_static_module  # 启用预压缩文件支持(gzip)
  --with-pcre                    # 启用 PCRE 正则支持
  --with-stream                  # 启用 TCP/UDP 反向代理(流模块)
  --with-stream_ssl_module       # 启用流模块的 SSL 支持
  --with-stream_realip_module      # 启用流模块的真实 IP 获取

注意:如果配置时遗漏了模块,需要重新配置,请先运行 make clean 清理之前的编译文件。

步骤 4:编译与安装

配置成功后,执行编译和安装命令。

make -j$(nproc) && make install
# -j$(nproc) 表明使用所有CPU核心并行编译,加快速度

步骤 5:调整权限并测试启动

  1. 调整安装目录属主:
  2. chown -R nginx:nginx /app/nginx
  3. 测试启动并验证版本:
  4. cd /app/nginx/sbin ./nginx -t # 检查配置文件语法 ./nginx # 启动Nginx ./nginx -v # 查看版本
  5. 输出示例:nginx version: nginx/1.28.0

步骤 6:配置 Systemd 服务(实现优雅管理)

为了让编译安装的 Nginx 能够通过 systemctl 管理,需要创建服务单元文件。

  • 创建服务文件 /usr/lib/systemd/system/nginx.service:
cat > /usr/lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/app/nginx/run/nginx.pid
ExecStart=/app/nginx/sbin/nginx -c /app/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target
EOF
  • 创建 PID 文件目录并修改配置:
  • mkdir -p /app/nginx/run
  • 编辑 Nginx 主配置文件 /app/nginx/conf/nginx.conf,撤销 pid 指令的注释并修改为:
  • pid /app/nginx/run/nginx.pid;
  • 重新加载 Systemd 并启动服务:
  • systemctl daemon-reload systemctl start nginx systemctl enable nginx systemctl status nginx

四、方案对比与总结

特性

YUM 源安装

编译安装

易用性

极高,几条命令即可完成

较低,步骤繁琐,需手动处理依赖

维护性

极佳,无缝集成系统包管理,易于升级

较差,升级需重新下载源码编译

灵活性

,模块固定,无法按需定制

极高,可自定义路径、选择所需模块

性能

良好,满足绝大多数场景

可针对特定硬件和需求进行优化

适用场景

快速部署、生产环境、追求稳定和易维护

需要特定模块、深度定制、学习原理

最终提议:对于绝大多数生产环境,推荐使用 YUM 源安装,其稳定性和可维护性是最大的优势。仅当您确知需要某个未被预编译包包含的模块时,才思考编译安装。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】交换机.路由器.防火墙-技术提升【4.3】(2025-11-26 22:52)
【系统环境|】交换机.路由器.防火墙-技术提升【4.2】(2025-11-26 22:51)
【系统环境|】交换机.路由器.防火墙-技术提升【4.1】(2025-11-26 22:51)
【系统环境|】交换机.路由器.防火墙-技术提升【4.0】(2025-11-26 22:50)
【系统环境|】交换机.路由器.防火墙-技术提升【3.9】(2025-11-26 22:50)
【系统环境|】i.mx8 HDMI显示分辨率异常(软件排查)(2025-11-26 22:49)
【系统环境|】Node.js环境变量配置实战(2025-11-26 22:49)
【系统环境|】交换机.路由器.防火墙-技术提升【3.8】(2025-11-26 22:48)
【系统环境|】交换机.路由器.防火墙-技术提升【3.7】(2025-11-26 22:48)
【系统环境|】10.MHA的部署(2025-11-26 22:47)
手机二维码手机访问领取大礼包
返回顶部