Nginx 安装指南:初学者分步教程
掌握高速 Web 服务器的初始设置!这份综合指南将带领初学者在 Debian/Ubuntu 和 CentOS/RHEL 系统上,精确地完成 Nginx 的分步安装。学习启动、停止和验证服务的基本命令,以及确保即时可访问性的关键防火墙配置。在几分钟内让您的 Nginx Web 服务器运行起来。
Nginx 安装指南:面向初学者的分步教程
在将 Nginx 用作 Web 服务器、反向代理、负载均衡器或缓存之前,您需要先安装、运行并能够访问它。本 Nginx 安装指南将介绍在 Debian/Ubuntu 和 RHEL 风格的 Linux 系统上使用基本包管理器的设置方法,然后演示如何验证服务状态以及开放防火墙。
以下命令假设您使用的是基于 systemd 的服务器,并且拥有具有 sudo 权限的用户。
前提条件
在开始之前,请确保您具备:
- 一台运行 Ubuntu、Debian、RHEL、CentOS Stream、Rocky Linux、AlmaLinux 或类似发行版的服务器或虚拟机。
- 一个具有
sudo权限的非 root 用户。 - 通过 SSH 或本地终端的 Shell 访问权限。
在 Debian/Ubuntu 系统上安装
在基于 Debian 的系统上,Nginx 可以从默认仓库获取。首先更新软件包索引,以便 apt 能够看到最新的软件包元数据。
步骤 1:更新软件包列表
执行以下命令以更新本地软件包索引:
sudo apt update
步骤 2:安装 Nginx
使用 apt install 命令下载并安装 Nginx 及其依赖项:
sudo apt install nginx
步骤 3:验证安装状态
安装完成后,服务通常会自动启动。您可以使用 systemctl 验证其状态:
sudo systemctl status nginx
您应该会看到输出显示服务状态为 active (running)。
在 CentOS/RHEL 系统上安装
在 RHEL 风格的系统中,当前版本使用 dnf,旧版本使用 yum。某些发行版在其自己的仓库中包含 Nginx;其他发行版可能需要 EPEL 或官方的供应商仓库。如果 dnf install nginx 找不到软件包,请启用 EPEL 或查看您发行版的 Nginx 打包说明。
步骤 1:安装 EPEL 仓库
如果您的系统需要 EPEL,请先安装它。
对于 CentOS/RHEL 7:
sudo yum install epel-release
对于 CentOS/RHEL 8/9(使用 DNF):
sudo dnf install epel-release
步骤 2:安装 Nginx
现在,使用 yum 或 dnf 安装 Nginx:
# 使用 yum(旧系统)
sudo yum install nginx
# 或者使用 dnf(新系统)
sudo dnf install nginx
步骤 3:启动并启用 Nginx 服务
与 Debian/Ubuntu 不同,在基于 RHEL 的系统上,Nginx 安装后可能不会自动启动。您必须手动启动它,并使其在系统启动时运行:
# 立即启动服务
sudo systemctl start nginx
# 确保它在重启时启动
sudo systemctl enable nginx
# 检查状态
sudo systemctl status nginx
防火墙配置:允许 HTTP 和 HTTPS
安装完成后,请确保您的防火墙允许 Web 流量。如果服务正在运行但端口 80 或 443 被阻止,则从服务器外部进行的浏览器检查将会失败。
在 Ubuntu/Debian 上使用 UFW
Ubuntu 的 Nginx 软件包通常会注册 UFW 应用程序配置文件。如果您计划很快添加 TLS,请同时开放 HTTP 和 HTTPS。
# 列出可用的应用程序配置文件
sudo ufw app list
# 允许标准 Web 流量(HTTP/HTTPS)
sudo ufw allow 'Nginx Full'
# 重新加载防火墙以应用更改
sudo ufw reload
在 RHEL 风格系统上使用 Firewalld
Firewalld 使用区域来管理规则。以下命令将标准的 http 和 https 服务添加到活动的默认区域。
# 允许 HTTP 流量(端口 80)
sudo firewall-cmd --permanent --add-service=http
# 允许 HTTPS 流量(端口 443)
sudo firewall-cmd --permanent --add-service=https
# 重新加载防火墙规则
sudo firewall-cmd --reload
验证 Nginx 是否正常工作
安装好软件包并开放防火墙后,确认 Nginx 正在提供默认页面。
方法 1:Web 浏览器检查
打开您喜欢的 Web 浏览器,并导航到您服务器的 IP 地址或域名:
http://YOUR_SERVER_IP_ADDRESS
如果成功,您应该会看到默认的 Nginx 欢迎页面。确切的文本和文件路径因发行版而异。
方法 2:命令行检查
从服务器本身使用 curl 检查本地监听器:
curl http://localhost
此命令应返回 HTML。如果本地失败,请在排查 DNS 或云防火墙规则之前检查 systemctl status nginx 和 /var/log/nginx/error.log。
基本的 Nginx 管理命令
安装后,您通常使用 systemctl 来管理 Nginx:
| 操作 | 命令 |
|---|---|
| 启动 服务器 | sudo systemctl start nginx |
| 停止 服务器 | sudo systemctl stop nginx |
| 重启(停止然后启动) | sudo systemctl restart nginx |
| 重新加载(应用配置更改,无需停机) | sudo systemctl reload nginx |
| 检查状态 | sudo systemctl status nginx |
| 禁用 开机自启 | sudo systemctl disable nginx |
在每次重新加载之前测试配置语法:
sudo nginx -t
sudo systemctl reload nginx
养成这个习惯可以在中断流量之前捕获缺失的分号、错误的包含路径和重复的 listen 冲突。
下一步:创建一个服务器块
默认配置提供的是软件包自带的欢迎页面。在 Debian/Ubuntu 上,Web 文件通常位于 /var/www/html 下。在 RHEL 风格的系统中,默认根目录通常是 /usr/share/nginx/html。
您的下一步是为您的域名创建一个服务器块。Debian/Ubuntu 的布局通常使用 /etc/nginx/sites-available/,并通过符号链接到 /etc/nginx/sites-enabled/。RHEL 风格的布局更常使用 /etc/nginx/conf.d/ 下的文件。
之后,添加 TLS,将您域名的 DNS 记录指向服务器,并在重新加载之前运行 sudo nginx -t。此时,您的 Nginx 安装已准备好进行实际的站点配置。