在 Ubuntu 20.04 系统上安装和设置 Nginx Web 服务器的完整分步指南
Nginx 是一个开源且流行的反向代理 Web 服务器,可在多个平台上使用。该软件是由 伊戈尔·西索耶夫 作为 C10K 问题的解决方案,于 2004 年首次发布。C10K 问题是并发处理一万个客户端的问题,这在 2000 年代初期非常不容易。
在本教程中,我们将了解如何在 Ubuntu 20.04 LTS 上安装和设置 Nginx。
先决条件
一个安装了 Ubuntu 20.04 的系统和一个 须藤
用户。此外,您不需要在端口 80 或 443 上运行其他 Web 服务器,例如 Apache。
安装 Nginx
Nginx 在 Ubuntu 20.04 存储库中可用,并且 易于
可以使用包管理器来安装它。因此,要安装 Nginx,请使用打开终端 ctrl+alt+t
并运行:
须藤 apt 更新 && 须藤 apt 安装 nginx
安装将很快完成,Nginx 守护进程将在后台自动启动。因此,要检查 Nginx 的状态,请运行:
须藤 systemctl 状态 nginx
运行上述命令后,您应该获得 Nginx 状态为 活动(运行)
如下图所示为绿色。
配置 Ubuntu 防火墙 (UFW)
默认情况下,出站端口 HTTP (80) 和 HTTPS (443) 在 Ubuntu 20.04 上是关闭的。此外,默认的防火墙守护进程 飞翔
由于所有端口都关闭而被禁用。
因此,要从其他系统访问 Nginx 服务器,您需要启用 飞翔
并正确设置以允许端口上的流量 80
和 443
.启用之前 飞翔
,要知道,如果你是在远程服务器上设置 Nginx,首先要更新 飞翔
允许的规则 ssh
通过运行:
须藤 ufw 允许 ssh
上面的命令允许 ssh
访问远程服务器,不允许 ssh
您将被锁定在远程服务器之外。
启用后 ssh
访问,您可以启用 飞翔
防火墙守护进程通过运行:
须藤 ufw 启用
现在,您需要更改防火墙规则以允许 HTTP 和 HTTPS 端口,以便 Nginx 可以为 Web 流量提供服务。要更改规则,请运行:
sudo ufw 允许'Nginx Full'
Nginx 完整版
允许来自所有 IP 地址的传入和传出流量的 HTTP 和 HTTPS 端口。
之后,验证规则是否正确添加到 飞翔
通过运行命令防火墙:
须藤 ufw 状态
上面的命令会输出我们添加的规则 飞翔
防火墙守护进程。
连接到 Nginx 服务器
现在我们已经安装并配置了 Nginx 飞翔
要允许传入的 HTTP 和 HTTPS 网络流量,您应该能够使用服务器的 IP 地址访问 Nginx 服务器。
如果您不知道服务器的 IP 地址,请使用以下命令轻松检索它。
ip 地址显示 eth0 | grep inet | awk '{ 打印 $2; }' | sed 's/\/.*$//'
获得 IP 地址后,将其粘贴到浏览器中并按 Enter。
//你的服务器IP
如果一切配置正确,您应该能够看到“欢迎使用 nginx!”网页。
Nginx 文件和目录
现在我们已经在您的服务器上安装并运行了 Nginx。让我们来看看一些重要的 Nginx 文件和目录,您必须使用这些文件和目录来配置您的网站/Web 应用程序。
网络服务器内容
您可以将任何位置配置为您的服务器块的根目录。 Nginx 的默认 HTML 直接是 /var/www/html
,这是我们之前访问的“欢迎”页面所在的位置。
通常用作域根目录的其他位置包括:
/家//
/var/www/html/
/选择/
Nginx 配置文件
所有 Nginx 配置文件都位于 /etc/nginx
目录。让我们看一下设置基本域所需的一些重要文件。
/etc/nginx/nginx.conf
: 该文件包含运行 Nginx 所需的所有配置。/etc/nginx/sites-available/
:此目录包含域的所有服务器块配置,但当前未启用/部署,因此客户端无法访问。/etc/nginx/sites-enabled/
:此目录包含客户端可访问的当前活动/启用的域。要启用域,我们需要链接域配置文件可用站点
到启用站点
目录。/etc/nginx/snippets
/:在这个目录中,我们可以存储潜在的可重用的配置段。由于它可以使配置的段/块可重用,因此它在生产环境中节省了大量时间。
服务器日志
Nginx 记录事件/活动并将它们存储在日志文件中 /var/log/nginx
目录。 Nginx 在这些文件中记录活动:
/var/log/nginx/access.log
:这个文件记录了访问过 Nginx 服务器的客户端。详细信息包括客户端的 IP 地址、时间和日期、用于访问服务器和操作系统的浏览器。/var/log/nginx/error.log
: 该文件记录了 Nginx 服务器在运行时遇到的错误。
因此,在本节中,我们简要地查看了一些足以入门的重要 Nginx 文件和目录。
设置服务器块
现在我们对 Nginx 文件和服务器有了一些基本的了解,我们准备设置我们自己的服务器块。服务器块类似于 Apache 虚拟主机。
我们将看看如何创建一个服务器块并演示我们将使用 例子.com
作为创建过程中的域。
💡更换 例子.com
用你的域名.
在我们开始配置 Server Blocks 之前,我们需要创建一个目录作为网站内容的根目录。让我们创造 /var/www/example.com/html
使用域的目录 目录
命令。
须藤 mkdir -p /var/www/example.com/html
这 -p
选项将创建所有需要的父目录。也就是说,它将创建 例子.com
一个父目录 html
如果它不存在。
使用以下命令更改目录的所有权 $用户
环境变量:
须藤 chown -R $USER:$USER /var/www/example.com/html
接下来,创建一个简单的 索引.html
当您访问正在配置的域时将访问的文件。这仅用于说明目的。
纳米/var/www/example.com/html/index.html
在我们刚刚在服务器上创建的文件中粘贴以下内容。
欢迎来到example.com! 哟! example.com 是可访问的!
按 ctrl+o
写入并保存 索引.html
文件,然后按 ctrl+x
退出 纳米
编辑。
现在最后我们可以继续创建一个服务器块,以便 Nginx 可以服务于 索引.html
当一些用户去 例子.com
.所以要创建一个服务器块,我们需要创建一个名为的配置文件 例子.com
在 可用站点
目录。为此,我们使用 nano 并运行:
须藤纳米/etc/nginx/sites-available/example.com
然后,键入或复制/粘贴以下配置。然后按 ctrl+o
并输入写入和保存。同样,按 ctrl+x
关闭纳米编辑器。
服务器 { 听 80;听 [::]:80; server_name example.com www.example.com; root /var/www/example-domain.com/html;索引 index.html; location / { try_files $uri $uri/ =404; } }
上面的配置和默认的服务器块配置类似,我们改了 根
语句指向我们的新根目录并更改了 服务器名称
到我们的域名。虽然 地点{}
如果未找到文件,则该语句用作错误捕获语句并向客户端显示错误 404。
接下来,我们可以启用我们的服务器块,以便 Nginx 提供服务 例子.com
网页。为了启用我们的服务器块,我们需要创建一个符号链接 例子.com
文件来自 可用站点
到 启用站点
目录。为此,请运行:
须藤 ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
将创建一个链接 站点启用
目录和现在 例子.com
应该启用。现在我们在 Nginx 服务器上启用了两个服务器块,它们将响应基于 听
和 服务器名称
指令保存在 例子.com
服务器块配置。
要检查所有配置文件是否正确且不存在语法错误,请运行:
须藤nginx -t
现在,最后通过运行以下命令重新启动 Nginx 以应用更改:
须藤 systemctl 重启 nginx
Nginx 现在将开始为您的服务器块提供服务,您可以转到 //您的域名
并实时查看您的网页。
笔记: 要使上述部分起作用,您需要设置自己的域并替换 例子.com
用你自己的域名。此外,您必须为您的域配置 DNS 以指向您的 Nginx 服务器的 IP 地址。
最后,我们已经了解了如何安装 Nginx,配置 飞翔
允许远程访问 Nginx 服务器,远程连接到 Nginx,熟悉一些基本的 Nginx 文件和目录,并学习如何设置服务器块。
要了解和了解有关 Nginx 的更多信息,您可能需要查看 Nginx wiki。