手把手教你:在 Ubuntu 系统上安装和配置高性能 Web 服务器 Nginx
欢迎来到本篇详细教程!如果你正在寻找一个强大、高效且轻量级的 Web 服务器来托管你的网站或应用程序,那么 Nginx(发音为 “engine-x”)无疑是一个绝佳的选择。凭借其高性能、稳定性和低资源消耗,Nginx 在互联网领域占据了举足轻重的地位,被广泛应用于高流量网站和作为反向代理服务器。
本篇文章将带你一步一步地在 Ubuntu 操作系统上安装 Nginx。无论你是新手还是有一定经验的用户,本教程都力求详细、易懂,确保你能顺利完成安装并进行基本的配置。我们将涵盖通过 Ubuntu 官方仓库进行安装的标准方法,还会介绍如何从 Nginx 官方仓库获取最新版本,并指导你进行基本的配置和管理。
准备好了吗?让我们开始这段 Nginx 安装之旅!
为什么选择 Nginx?
在深入安装之前,让我们快速了解一下为什么 Nginx 如此受欢迎:
- 高性能和高并发处理能力: Nginx 采用异步、事件驱动的架构,这使得它在处理大量并发连接时表现出色,远优于传统的基于进程或线程的模型(如 Apache 在某些配置下)。这对于高流量网站至关重要。
- 低资源消耗: 相比其他 Web 服务器,Nginx 使用的内存和 CPU 资源更少,这意味着你可以在相同硬件上服务更多的用户或运行其他应用程序。
- 稳定性和可靠性: Nginx 以其卓越的稳定性而闻名,即使在高负载下也不容易崩溃。
- 丰富的功能: Nginx 不仅可以作为静态文件服务器,还可以作为反向代理、负载均衡器、HTTP 缓存,并支持 SSL/TLS 加密、Gzip 压缩等多种功能。
- 易于配置: 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 HTTPS
或 Nginx 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
可能是你的主网络接口名称,如果不是,请根据你的系统使用正确的接口名称,例如 enp0s3
或 ens33
等。或者直接使用 ip a
查看所有接口,找到分配有 IP 地址的那个)。
或者,如果你在本地安装,可以直接使用 localhost
或 127.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-available
或sites-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 指向一个新的网站目录实现的。
“`
按 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-data
。chmod -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 版本的代号(例如 focal
、jammy
),确保你添加的是适用于你当前 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 过程中可能会遇到一些问题。以下是一些常见问题及其解决方法:
-
Nginx 服务无法启动或运行:
- 检查服务状态:
systemctl status nginx
。查看输出中的错误信息。 - 查看 Nginx 错误日志:
sudo tail /var/log/nginx/error.log
。日志通常会给出详细的错误原因。 - 检查系统日志:
sudo journalctl -xe | grep nginx
。这可以显示 systemd 相关的错误信息。 - 检查配置文件语法:
sudo nginx -t
。确保没有语法错误。
- 检查服务状态:
-
无法通过浏览器访问网站:
- 防火墙: 确保你的防火墙(如 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.com
或nslookup your_domain.com
命令检查。 - 端口冲突: 确保没有其他服务(如 Apache)也在使用 80 或 443 端口。可以使用
sudo netstat -tulnp | grep :80
或sudo lsof -i :80
命令查看哪个进程占用了端口。
- 防火墙: 确保你的防火墙(如 UFW)允许 HTTP (端口 80) 和/或 HTTPS (端口 443) 流量通过。使用
-
修改配置后没有生效:
- 修改配置文件后,你必须重新加载或重启 Nginx 服务才能使更改生效。使用
sudo systemctl reload nginx
(推荐) 或sudo systemctl restart nginx
。 - 在重新加载/重启前,务必使用
sudo nginx -t
检查配置语法。
- 修改配置文件后,你必须重新加载或重启 Nginx 服务才能使更改生效。使用
-
默认网站依然显示:
- 如果你创建了新的服务器块,确保你已经禁用了 Nginx 的默认网站配置(通常是通过删除
/etc/nginx/sites-enabled/default
的符号链接)。 - 确保你的新配置文件的
server_name
指令正确匹配你访问的域名或 IP 地址。如果没有匹配的服务器块,Nginx 可能会回退到默认服务器块(通常是第一个加载的服务器块,或者在nginx.conf
中 explicitly 定义的默认服务器)。
- 如果你创建了新的服务器块,确保你已经禁用了 Nginx 的默认网站配置(通常是通过删除
进一步学习
成功安装和配置 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 的过程中一切顺利!