手把手教你在 Ubuntu 安装 Nginx – wiki基地


手把手教你:在 Ubuntu 系统上安装和配置高性能 Web 服务器 Nginx

欢迎来到本篇详细教程!如果你正在寻找一个强大、高效且轻量级的 Web 服务器来托管你的网站或应用程序,那么 Nginx(发音为 “engine-x”)无疑是一个绝佳的选择。凭借其高性能、稳定性和低资源消耗,Nginx 在互联网领域占据了举足轻重的地位,被广泛应用于高流量网站和作为反向代理服务器。

本篇文章将带你一步一步地在 Ubuntu 操作系统上安装 Nginx。无论你是新手还是有一定经验的用户,本教程都力求详细、易懂,确保你能顺利完成安装并进行基本的配置。我们将涵盖通过 Ubuntu 官方仓库进行安装的标准方法,还会介绍如何从 Nginx 官方仓库获取最新版本,并指导你进行基本的配置和管理。

准备好了吗?让我们开始这段 Nginx 安装之旅!

为什么选择 Nginx?

在深入安装之前,让我们快速了解一下为什么 Nginx 如此受欢迎:

  1. 高性能和高并发处理能力: Nginx 采用异步、事件驱动的架构,这使得它在处理大量并发连接时表现出色,远优于传统的基于进程或线程的模型(如 Apache 在某些配置下)。这对于高流量网站至关重要。
  2. 低资源消耗: 相比其他 Web 服务器,Nginx 使用的内存和 CPU 资源更少,这意味着你可以在相同硬件上服务更多的用户或运行其他应用程序。
  3. 稳定性和可靠性: Nginx 以其卓越的稳定性而闻名,即使在高负载下也不容易崩溃。
  4. 丰富的功能: Nginx 不仅可以作为静态文件服务器,还可以作为反向代理、负载均衡器、HTTP 缓存,并支持 SSL/TLS 加密、Gzip 压缩等多种功能。
  5. 易于配置: Nginx 的配置文件结构清晰、模块化,相对容易理解和管理。

现在,你已经对 Nginx 有了初步了解,让我们进入正题。

前提条件

在开始安装之前,请确保你具备以下条件:

  • 一台运行 Ubuntu 操作系统的服务器或虚拟机。本教程以 Ubuntu Server 20.04 LTS 或 22.04 LTS 为例,但步骤同样适用于其他近期版本的 Ubuntu Desktop 或 Server。
  • 拥有 sudo 权限的用户账号。安装和配置系统软件需要管理员权限。
  • 稳定的互联网连接,以便下载 Nginx 安装包。
  • 一个终端(Terminal)窗口。

确保你的系统已经更新到最新状态是一个好习惯。打开终端,执行以下命令:

bash
sudo apt update
sudo apt upgrade -y

sudo apt update 命令会从 Ubuntu 的软件源列表中下载最新的包信息,而 sudo apt upgrade -y 会升级所有已安装的软件包到最新版本(-y 参数表示自动确认升级)。这是一个良好的起点。

方法一:通过 Ubuntu 官方仓库安装 Nginx(推荐)

这是在 Ubuntu 上安装 Nginx 最简单和最常用的方法。Ubuntu 的官方软件仓库中包含了 Nginx 的稳定版本,虽然可能不是最新的发布版本,但通常经过了良好的测试,并且与 Ubuntu 系统集成得很好。

步骤 1:更新软件包列表

尽管我们在前提条件中已经建议更新,但在执行任何新的安装之前再次更新软件包列表是一个好习惯,以确保你获取的是最新的软件包信息。

bash
sudo apt update

执行此命令后,apt 包管理器会连接到 Ubuntu 的官方仓库镜像,下载可用的软件包及其版本信息。

步骤 2:安装 Nginx

现在,你可以使用 apt 包管理器来安装 Nginx 了。Nginx 的软件包名称就是 nginx

bash
sudo apt install nginx

执行此命令后,apt 会计算需要安装的软件包及其依赖项,并会询问你是否确认安装。你会看到需要下载和安装的软件包列表以及占用的磁盘空间。

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjansson4 libjpeg-turbo8 libjpeg8 libperl5.30 libxpm4 libxslt1.1 nginx-common nginx-core
Suggested packages:
fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjansson4 libjpeg-turbo8 libjpeg8 libperl5.30 libxpm4 libxslt1.1 nginx nginx-common nginx-core
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,785 kB of archives.
After this operation, 14.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]

输入 Y 并按回车键确认安装。apt 会下载所需的软件包并自动安装它们。安装完成后,Nginx 服务会自动启动。

步骤 3:验证 Nginx 服务状态

安装完成后,你可以使用 systemctl 命令来检查 Nginx 服务的运行状态。systemctl 是用于管理 systemd 系统和服务的工具。

bash
systemctl status nginx

如果 Nginx 成功安装并启动,你会看到类似以下的输出:

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-10-26 10:30:00 UTC; 1min ago
Docs: man:nginx(8)
Process: 1234 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=EXIT_SUCCESS, status=0/SUCCESS)
Tasks: 2 (limit: 4679)
Memory: 4.5M
CPU: 0.020s
CGroup: /system.slice/nginx.service
├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─1235 nginx: worker process

关键信息是 Active: active (running),这表示 Nginx 服务正在正常运行。enabled 表示服务被设置为在系统启动时自动启动。

要退出状态视图,按 Q 键。

步骤 4:检查防火墙设置(重要)

如果你的 Ubuntu 系统上启用了防火墙(例如 UFW,Ubuntu Uncomplicated Firewall),你需要允许 HTTP 和 HTTPS 流量通过防火墙,以便外部用户可以访问你的 Web 服务器。

UFW 提供了一些预配置的应用配置文件,其中就包括 Nginx 的。你可以列出可用的应用配置文件:

bash
sudo ufw app list

你会看到类似以下的输出:

Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

  • Nginx HTTP: 开放端口 80 (HTTP)。
  • Nginx HTTPS: 开放端口 443 (HTTPS)。
  • Nginx Full: 开放端口 80 和 443。

选择适合你需求的配置文件。如果只提供 HTTP 服务,允许 Nginx HTTP 即可;如果需要提供 HTTPS 服务(强烈推荐),允许 Nginx HTTPSNginx Full。例如,允许 HTTP 流量:

bash
sudo ufw allow 'Nginx HTTP'

如果你计划同时使用 HTTP 和 HTTPS:

bash
sudo ufw allow 'Nginx Full'

执行命令后,你会看到规则被添加或更新的提示。

要查看 UFW 防火墙的状态和规则,可以运行:

bash
sudo ufw status

你会看到类似这样的输出,表明 Nginx 的 HTTP 流量已被允许:

“`
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
“`

步骤 5:访问 Nginx 默认页面

现在,Nginx 已经安装并运行,并且防火墙也已配置好。你可以通过 Web 浏览器访问服务器的 IP 地址或域名来验证它是否正常工作。

打开你的 Web 浏览器,在地址栏输入你的服务器的 IP 地址。如果你不确定服务器的 IP 地址,可以在终端中运行以下命令来获取:

bash
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

(注意:eth0 可能是你的主网络接口名称,如果不是,请根据你的系统使用正确的接口名称,例如 enp0s3ens33 等。或者直接使用 ip a 查看所有接口,找到分配有 IP 地址的那个)。

或者,如果你在本地安装,可以直接使用 localhost127.0.0.1

输入 IP 地址后,你应该会看到 Nginx 的默认欢迎页面,内容是 “Welcome to nginx!”。这表明你的 Nginx Web 服务器已经成功安装并可以正常响应 HTTP 请求了。

至此,你已经成功地通过 Ubuntu 官方仓库安装了 Nginx!接下来,我们将了解 Nginx 的基本配置和管理。

Nginx 的基本配置和管理

安装完成后,了解 Nginx 的文件结构和管理命令是非常重要的。

Nginx 文件结构

Nginx 的配置文件主要位于 /etc/nginx/ 目录下:

  • /etc/nginx/nginx.conf: 这是 Nginx 的主配置文件。它包含了全局设置以及引入其他配置文件的指令。
  • /etc/nginx/sites-available/: 这个目录存放了所有可用的网站(虚拟主机)配置文件。
  • /etc/nginx/sites-enabled/: 这个目录存放了当前已经启用的网站配置文件。Nginx 在启动时会读取这个目录下的配置文件。通常,这里的配置文件是通过在 sites-available 目录中的文件创建符号链接(symbolic link)来实现的。
  • /etc/nginx/snippets/: 这个目录存放了一些可重用的配置片段,可以在多个网站配置文件中引用,以避免重复。
  • /var/www/html/: 这是 Nginx 默认的网站根目录,当你访问服务器 IP 时,Nginx 会默认查找并显示这里的 index.html 文件(或其他配置的索引文件)。你可以创建新的目录来存放你的网站文件。
  • /var/log/nginx/: Nginx 的访问日志和错误日志文件存放在这里。access.log 记录所有访问请求,error.log 记录 Nginx 运行中遇到的错误。

管理 Nginx 服务

你可以使用 systemctl 命令来管理 Nginx 服务:

  • 启动 Nginx:
    bash
    sudo systemctl start nginx

    如果服务当前停止,此命令会启动它。
  • 停止 Nginx:
    bash
    sudo systemctl stop nginx

    此命令会优雅地关闭 Nginx 服务。
  • 重启 Nginx:
    bash
    sudo systemctl restart nginx

    此命令会停止然后重新启动 Nginx 服务。通常用于修改了 /etc/nginx/nginx.conf 或其他全局配置后。重启会中断所有当前连接。
  • 重新加载 Nginx 配置:
    bash
    sudo systemctl reload nginx

    此命令会加载新的配置文件,而无需停止和重新启动服务。Nginx 会在收到重新加载信号后,启动新的工作进程并加载新配置,同时优雅地关闭旧的工作进程。这是修改了网站配置文件(如 sites-availablesites-enabled 下的文件)后推荐使用的方法,因为它不会中断现有连接。
  • 检查 Nginx 状态:
    bash
    systemctl status nginx

    再次查看 Nginx 的运行状态。
  • 禁用 Nginx 开机自启动:
    bash
    sudo systemctl disable nginx
  • 启用 Nginx 开机自启动:
    bash
    sudo systemctl enable nginx

    通过 apt 安装时,Nginx 通常默认是开机自启动的。

测试 Nginx 配置文件的语法

在重新加载或重启 Nginx 之前,强烈建议先测试你的配置文件是否有语法错误。一个语法错误可能导致 Nginx 启动失败。使用以下命令:

bash
sudo nginx -t

如果配置文件正确,你会看到类似以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果存在错误,命令会指出错误所在的行和类型,方便你进行排查。

设置一个简单的静态网站

默认情况下,Nginx 显示的是 /var/www/html 目录下的内容。让我们来创建一个自己的网站目录,并配置 Nginx 来服务这个目录。

步骤 1:创建网站目录和文件

我们创建一个名为 mywebsite 的目录来存放我们的网站文件。出于安全考虑,我们通常将网站文件放在 /var/www/ 目录下。

bash
sudo mkdir -p /var/www/mywebsite/html

-p 参数确保父目录 /var/www/mywebsite 如果不存在也会被创建。我们在 mywebsite 下创建了一个 html 子目录,这是一种常见的组织方式。

接下来,创建一个简单的 index.html 文件作为网站的首页。

bash
sudo nano /var/www/mywebsite/html/index.html

在 nano 编辑器中,粘贴以下简单的 HTML 代码:

“`html




我的第一个 Nginx 网站


欢迎来到我的自定义网站!

Nginx 正在成功地为这个页面提供服务。

这是通过配置 Nginx 指向一个新的网站目录实现的。


“`

Ctrl + X 退出,然后按 Y 保存,最后按回车确认文件名。

步骤 2:设置文件权限

确保 Nginx 进程有读取这些文件的权限。通常情况下,Nginx 工作进程以 www-data 用户运行,所以我们需要将文件的所有权或至少读权限赋予 www-data 用户或组。

bash
sudo chown -R www-data:www-data /var/www/mywebsite/
sudo chmod -R 755 /var/www/mywebsite/html/

chown -R 递归地更改目录及其内容的属主和属组为 www-datachmod -R 755 递归地设置目录的权限为所有者读写执行,组和其他用户读和执行。这对于 Web 服务器来说是一个安全的权限设置。

步骤 3:创建 Nginx 服务器块配置文件

现在我们需要告诉 Nginx 如何处理指向我们新网站目录的请求。这通过创建一个新的服务器块(server block)配置文件来实现。我们将这个文件放在 /etc/nginx/sites-available/ 目录下。

bash
sudo nano /etc/nginx/sites-available/mywebsite

在编辑器中,输入以下配置内容:

“`nginx
server {
listen 80; # 监听 HTTP 端口 80
listen [::]:80; # 同时监听 IPv6 的 80 端口

root /var/www/mywebsite/html; # 指定网站文件的根目录

index index.html index.htm index.nginx-debian.html; # 定义首页文件的名称和查找顺序

server_name your_domain_or_ip; # 指定服务器名称(域名或IP地址),替换为你的实际值

location / {
    # 尝试按顺序查找文件
    try_files $uri $uri/ =404;
}

# 错误页面配置(可选)
# error_page 404 /404.html;
# location = /404.html {
#     internal;
# }

# 可以添加更多配置,比如 SSL、Gzip 压缩等

}
“`

配置说明:

  • listen 80;listen [::]:80;: 这告诉 Nginx 监听 IPv4 和 IPv6 的 80 端口,这是标准的 HTTP 端口。
  • root /var/www/mywebsite/html;: 这是最关键的指令之一,它指定了 Nginx 在这个服务器块中查找网站文件的根目录。
  • index index.html ...;: 这指定了当一个请求指向一个目录而不是具体文件时,Nginx 应该尝试加载哪个文件作为首页。它会按照列出的顺序查找。
  • server_name your_domain_or_ip;: 重要!你需要将 your_domain_or_ip 替换为你的实际域名(例如 example.com www.example.com)或服务器的 IP 地址。当 Nginx 接收到一个请求时,它会根据请求头中的 Host 字段来匹配 server_name,从而确定使用哪个服务器块来处理请求。如果你还没有域名,可以直接使用你的服务器 IP 地址。
  • location / { ... }: 这个块定义了如何处理匹配 / 路径的请求(即网站的根路径以及所有子路径)。
  • try_files $uri $uri/ =404;: 这个指令是用来查找文件的。它会按顺序尝试:
    • $uri: 尝试查找与请求 URI 匹配的文件(例如,请求 /about 会查找 /var/www/mywebsite/html/about 文件)。
    • $uri/: 如果没有找到文件,尝试查找与请求 URI 匹配的目录,并在该目录中查找 index 指令指定的首页文件(例如,请求 /about/ 会查找 /var/www/mywebsite/html/about/index.html)。
    • =404: 如果前两者都找不到,返回 404 错误。

保存并关闭文件。

步骤 4:启用服务器块

为了让 Nginx 使用这个新的服务器块配置,我们需要在 sites-enabled 目录中创建一个指向它的符号链接。同时,最好禁用默认的 Nginx 欢迎页面配置。

禁用默认网站:

bash
sudo unlink /etc/nginx/sites-enabled/default

如果 /etc/nginx/sites-enabled/default 文件存在(通过符号链接指向 ../sites-available/default),此命令会删除这个符号链接,从而禁用默认网站。

启用新网站:

bash
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/

此命令在 sites-enabled 目录下创建了一个名为 mywebsite 的符号链接,它指向我们在 sites-available 目录中创建的配置文件。

步骤 5:测试配置和重新加载 Nginx

在重新加载 Nginx 之前,务必测试配置文件的语法是否正确:

bash
sudo nginx -t

如果看到 “syntax is ok” 和 “test is successful”,说明配置没有问题。

现在,重新加载 Nginx 服务以应用新的配置:

bash
sudo systemctl reload nginx

步骤 6:访问新网站

打开你的 Web 浏览器,输入你在 server_name 指令中配置的域名或 IP 地址。现在你应该看到你刚才创建的 “欢迎来到我的自定义网站!” 页面,而不是 Nginx 的默认页面。

恭喜!你已经成功地配置 Nginx 来服务你自己的网站文件了。

方法二:从 Nginx 官方仓库安装最新版本

Ubuntu 官方仓库中的 Nginx 版本通常是经过严格测试的稳定版本,但可能不是最新的。如果你需要使用最新的 Nginx 功能、模块或修复,或者希望获取最新的主线(mainline)版本而不是稳定(stable)版本,可以考虑从 Nginx 官方仓库进行安装。

注意: 从官方仓库安装的版本可能与 Ubuntu 仓库的版本在配置路径或默认行为上略有差异,但核心功能是一致的。

步骤 1:安装必要的依赖

为了能够添加和使用外部仓库,你需要安装一些工具:

bash
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y

这些工具用于下载仓库的 GPG 密钥、处理证书等。

步骤 2:导入 Nginx 官方仓库的签名密钥

Nginx 官方仓库使用 GPG 密钥来验证下载的软件包的完整性和真实性。你需要导入这个密钥。

首先,使用 curl 下载密钥:

bash
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

这个命令做了几件事:
* curl https://nginx.org/keys/nginx_signing.key: 从 Nginx 官网下载 GPG 公钥文件。
* gpg --dearmor: 将下载的 ASCII 格式的密钥转换为二进制格式。
* sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg: 使用 tee 命令将二进制密钥保存到 /usr/share/keyrings/ 目录下,这是 Debian/Ubuntu 系统推荐存放第三方仓库密钥的位置。>/dev/null 阻止 tee 将内容输出到标准输出。

步骤 3:添加 Nginx 官方仓库源列表

接下来,你需要告诉 apt 包管理器在哪里可以找到 Nginx 软件包。这通过在 /etc/apt/sources.list.d/ 目录下创建一个新的源列表文件来实现。

Nginx 提供稳定版 (stable)主线版 (mainline) 仓库。主线版包含最新功能和修复,但可能相对不够稳定;稳定版是经过充分测试的版本。大多数用户选择稳定版即可。

选择稳定版:

bash
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

选择主线版:

bash
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

请根据你的需求选择其中一个命令执行。$(lsb_release -cs) 会自动获取你的 Ubuntu 版本的代号(例如 focaljammy),确保你添加的是适用于你当前 Ubuntu 版本的仓库。[signed-by=...] 部分告诉 apt 使用哪个 GPG 密钥来验证这个仓库的软件包。

步骤 4:更新软件包列表

添加了新的仓库后,需要再次更新 apt 的软件包列表,以便它能识别并从新添加的仓库中获取软件包信息。

bash
sudo apt update

在更新过程中,你应该会看到从 nginx.org 仓库获取软件包信息的输出。

步骤 5:安装 Nginx

现在可以从 Nginx 官方仓库安装 Nginx 了。如果之前安装了 Ubuntu 仓库的版本,这个命令会升级到官方仓库的版本。

bash
sudo apt install nginx

apt 会告诉你它将安装(或升级到)来自 nginx.org 的 Nginx 软件包。输入 Y 确认即可。

步骤 6:验证安装和状态

安装完成后,同样可以使用 systemctl 检查 Nginx 服务状态:

bash
systemctl status nginx

确认服务处于 active (running) 状态。

步骤 7:检查防火墙和访问

防火墙配置(UFW)与方法一相同。请确保 Nginx 的 HTTP/HTTPS 端口在防火墙中是开放的。

访问服务器 IP 地址,你可能会看到一个不同的默认欢迎页面(因为官方仓库的默认配置可能与 Ubuntu 仓库略有不同),但这同样表明 Nginx 已成功运行。

配置差异注意事项:

从官方仓库安装的 Nginx,其配置文件位置和结构可能与 Ubuntu 仓库版本略有不同。例如,主配置文件仍然是 /etc/nginx/nginx.conf,但默认的网站配置文件可能直接包含在主配置文件中,或者位于 /etc/nginx/conf.d/ 目录下,而不是使用 sites-available/sites-enabled 结构(尽管你也可以手动配置 Nginx 来使用这种结构)。

如果你从官方仓库安装,你可能需要在 /etc/nginx/conf.d/ 目录下创建一个 .conf 文件来配置你的网站,而不是在 sites-available 中创建并链接到 sites-enabled。例如,创建一个 /etc/nginx/conf.d/mywebsite.conf 文件,内容与前面创建的服务器块类似。

创建并编辑文件:

bash
sudo nano /etc/nginx/conf.d/mywebsite.conf

文件内容与之前的 sites-available/mywebsite 类似,但不需要 server_name 指令,除非你需要支持多个域名。如果你只有一个网站并且用 IP 访问,或者主配置文件中已经包含了默认服务器,你可能只需要一个简单的配置块。

“`nginx
server {
listen 80;
listen [::]:80;

server_name your_domain_or_ip; # 根据需要设置或省略

root /var/www/mywebsite/html;
index index.html; # 或其他你需要的索引文件

location / {
    try_files $uri $uri/ =404;
}

}
“`

保存文件,测试配置 sudo nginx -t,然后重新加载 sudo systemctl reload nginx

常见问题与故障排除

在安装或配置 Nginx 过程中可能会遇到一些问题。以下是一些常见问题及其解决方法:

  1. Nginx 服务无法启动或运行:

    • 检查服务状态:systemctl status nginx。查看输出中的错误信息。
    • 查看 Nginx 错误日志:sudo tail /var/log/nginx/error.log。日志通常会给出详细的错误原因。
    • 检查系统日志:sudo journalctl -xe | grep nginx。这可以显示 systemd 相关的错误信息。
    • 检查配置文件语法:sudo nginx -t。确保没有语法错误。
  2. 无法通过浏览器访问网站:

    • 防火墙: 确保你的防火墙(如 UFW)允许 HTTP (端口 80) 和/或 HTTPS (端口 443) 流量通过。使用 sudo ufw status 检查规则,并使用 sudo ufw allow 'Nginx HTTP'sudo ufw allow 'Nginx Full' 允许流量。
    • Nginx 服务状态: 确保 Nginx 服务正在运行 (systemctl status nginx)。
    • 配置文件: 检查你的服务器块配置 (/etc/nginx/sites-enabled//etc/nginx/conf.d/):
      • listen 指令是否正确监听端口 80 或 443?
      • server_name 是否与你访问的域名或 IP 地址匹配?
      • root 指令是否指向了正确的网站文件目录?
      • 文件权限是否正确 (www-data 用户是否有读取权限)?
    • DNS 解析: 如果使用域名访问,确保域名正确解析到了你的服务器 IP 地址。可以使用 ping your_domain.comnslookup your_domain.com 命令检查。
    • 端口冲突: 确保没有其他服务(如 Apache)也在使用 80 或 443 端口。可以使用 sudo netstat -tulnp | grep :80sudo lsof -i :80 命令查看哪个进程占用了端口。
  3. 修改配置后没有生效:

    • 修改配置文件后,你必须重新加载或重启 Nginx 服务才能使更改生效。使用 sudo systemctl reload nginx (推荐) 或 sudo systemctl restart nginx
    • 在重新加载/重启前,务必使用 sudo nginx -t 检查配置语法。
  4. 默认网站依然显示:

    • 如果你创建了新的服务器块,确保你已经禁用了 Nginx 的默认网站配置(通常是通过删除 /etc/nginx/sites-enabled/default 的符号链接)。
    • 确保你的新配置文件的 server_name 指令正确匹配你访问的域名或 IP 地址。如果没有匹配的服务器块,Nginx 可能会回退到默认服务器块(通常是第一个加载的服务器块,或者在 nginx.conf 中 explicitly 定义的默认服务器)。

进一步学习

成功安装和配置 Nginx 只是开始。Nginx 是一个功能强大的 Web 服务器,你可以继续学习以下高级主题:

  • 配置 HTTPS (SSL/TLS): 使用 Let’s Encrypt 等工具为你的网站启用免费的 HTTPS 加密。
  • 配置反向代理: 将 Nginx 作为反向代理,将请求转发到后端的应用服务器(如 Node.js, Python, PHP-FPM 等)。
  • 配置负载均衡: 将 Nginx 配置为负载均衡器,将流量分发到多个后端服务器,提高可用性和性能。
  • 配置 HTTP 缓存: 利用 Nginx 的缓存功能,减少后端服务器的负载并加快内容交付。
  • 优化 Nginx 性能: 学习如何调整 Nginx 的配置参数以获得最佳性能。
  • 理解 Nginx 模块: Nginx 的功能通过模块实现,了解常用的模块及其用途。

总结

恭喜你!你已经成功地在 Ubuntu 系统上安装了高性能的 Nginx Web 服务器,并且学会了如何进行基本的配置和管理,包括设置一个自定义的静态网站。我们介绍了通过 Ubuntu 官方仓库和 Nginx 官方仓库两种安装方法,并详细讲解了 Nginx 的文件结构、服务管理命令以及常见的故障排除技巧。

现在,你拥有了一个稳定、高效的平台来托管你的 Web 项目。继续探索 Nginx 的强大功能,它将成为你在 Web 开发和运维道路上的得力助手。

如果在安装或配置过程中遇到任何问题,不要气馁。查阅 Nginx 官方文档、Ubuntu 社区论坛或搜索引擎,通常都能找到解决方案。实践是最好的老师,多动手尝试不同的配置,你会越来越熟悉 Nginx。

感谢你的阅读,祝你在使用 Nginx 的过程中一切顺利!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部