Nginx 以其高性能、低内存消耗和丰富的功能集,成为当今最流行的 Web 服务器和反向代理之一,在稳定可靠的 CentOS 系统上部署 Nginx 是许多开发者和系统管理员的首选方案,本文将详细介绍在 CentOS 系统中安装和配置 Nginx 的完整流程,旨在提供一个清晰、准确且易于操作的指南。

选择安装方式
在 CentOS 上安装 Nginx 主要有两种主流方式:通过 EPEL (Extra Packages for Enterprise Linux) 仓库或通过 Nginx 官方仓库,EPEL 仓库集成在系统中,安装简单,但版本可能不是最新的,官方仓库则能提供 Nginx 的最新稳定版,推荐追求新功能和性能优化的用户使用,下表对比了两种方式的优缺点:
| 安装方式 | 优点 | 缺点 | 
|---|---|---|
| EPEL 仓库 | 简单快速,与系统包管理器无缝集成 | 版本更新滞后,可能缺少新功能 | 
| 官方 Nginx 仓库 | 可获取最新稳定版,功能最全 | 需要手动配置仓库源 | 
通过官方 Yum 仓库安装
这是推荐的方法,可以确保您获得 Nginx 的最新版本。
- 
添加 Nginx 官方仓库 使用
vi或nano编辑器创建一个新的仓库文件。sudo vi /etc/yum.repos.d/nginx.repo
粘贴到文件中,此配置适用于 CentOS 7 和 8/Stream,
$releasever变量会自动匹配您的系统版本。[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 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
 - 
导入 GPG 密钥 为了验证软件包的完整性,需要导入 Nginx 的官方 GPG 密钥。
sudo rpm --import https://nginx.org/keys/nginx_signing.key
 - 
安装 Nginx 现在可以使用 Yum(CentOS 7)或 DNF(CentOS 8/Stream)来安装 Nginx。

# CentOS 7 sudo yum install nginx # CentOS 8/Stream sudo dnf install nginx
 
安装后基本配置
安装完成后,需要进行一系列操作来启动并启用 Nginx 服务。
- 
启动 Nginx 服务
sudo systemctl start nginx
 - 
设置开机自启 确保 Nginx 在系统重启后能自动运行。
sudo systemctl enable nginx
 - 
检查服务状态 可以通过以下命令确认 Nginx 是否正在正常运行。
sudo systemctl status nginx
 
配置防火墙
CentOS 默认使用 firewalld 作为防火墙管理工具,您必须开放 HTTP(80端口)和 HTTPS(443端口)服务,否则外部无法访问您的 Web 服务器。
# 永久开放 HTTP 服务 sudo firewall-cmd --permanent --add-service=http # 永久开放 HTTPS 服务 sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙配置使规则生效 sudo firewall-cmd --reload
验证安装与核心文件
完成上述步骤后,您可以通过在浏览器中访问服务器的 IP 地址或域名来验证 Nginx 是否安装成功,如果看到 "Welcome to Nginx!" 的页面,则说明一切正常。

了解 Nginx 的核心配置文件和目录位置对于后续管理至关重要:
- 主配置文件: 
/etc/nginx/nginx.conf- 包含全局设置。 - 虚拟主机配置目录: 
/etc/nginx/conf.d/- 在此目录下创建.conf文件来管理不同网站。 - 网站根目录: 
/usr/share/nginx/html/- 默认网站的文件存放位置。 - 日志目录: 
/var/log/nginx/- 存放访问日志(access.log)和错误日志(error.log)。 
相关问答 (FAQs)
我成功安装了 Nginx,但为什么在浏览器中无法访问?
解答: 这通常是防火墙问题,请确保您已经按照本文中的“配置防火墙”部分,正确地开放了 HTTP(80)和 HTTPS(443)端口,如果防火墙配置无误,请检查 Nginx 服务是否正在运行(systemctl status nginx),以及您的云服务提供商(如阿里云、腾讯云)是否有额外的安全组规则需要配置。
我的网站文件应该放在哪里?如何添加一个新的网站?
解答: 默认的网站文件存放在 /usr/share/nginx/html/ 目录,但要添加新网站,最佳实践是在 /etc/nginx/conf.d/ 目录下创建一个新的 .conf 配置文件(mynewsite.conf),在该文件中定义一个新的 server 块,指定 server_name(您的域名)、root 网站文件目录(可以自定义,如 /var/www/mynewsite)以及监听端口等,配置完成后,使用 sudo nginx -t 测试配置,无误后重启 Nginx(sudo systemctl restart nginx)即可。