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

现在,使用 yumdnf 安装 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 使用区域来管理规则。以下命令将标准的 httphttps 服务添加到活动的默认区域。

# 允许 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 安装已准备好进行实际的站点配置。