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

这种方法通过配置 Nginx 官方提供的 YUM 源进行安装,优势在于依赖自动解决、后期升级管理方便,超级适合快速部署和运维标准化。
第一,检查系统默认 YUM 源(如 EPEL)中的 Nginx 版本,一般版本较旧。
yum info nginx输出示例:
Available Packages
Name : nginx
Version : 1.20.1 # 版本较旧
Release : 10.el7
Repo : epel/x86_64创建 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编译安装允许您自定义功能模块和安装路径,优势在于极致的灵活性和性能调优潜力,适合有特殊需求的高级用户。
使用 ./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 清理之前的编译文件。
配置成功后,执行编译和安装命令。
make -j$(nproc) && make install
# -j$(nproc) 表明使用所有CPU核心并行编译,加快速度为了让编译安装的 Nginx 能够通过 systemctl 管理,需要创建服务单元文件。
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特性 | YUM 源安装 | 编译安装 |
易用性 | 极高,几条命令即可完成 | 较低,步骤繁琐,需手动处理依赖 |
维护性 | 极佳,无缝集成系统包管理,易于升级 | 较差,升级需重新下载源码编译 |
灵活性 | 差,模块固定,无法按需定制 | 极高,可自定义路径、选择所需模块 |
性能 | 良好,满足绝大多数场景 | 可针对特定硬件和需求进行优化 |
适用场景 | 快速部署、生产环境、追求稳定和易维护 | 需要特定模块、深度定制、学习原理 |
最终提议:对于绝大多数生产环境,推荐使用 YUM 源安装,其稳定性和可维护性是最大的优势。仅当您确知需要某个未被预编译包包含的模块时,才思考编译安装。