网站搜索

如何在 Ubuntu 20.04 上设置 Nginx 服务器块(虚拟主机)


有时,您可能需要在 Nginx 网络服务器上托管多个域或网站。为此,需要配置服务器块虚拟主机)来封装所有域的配置。 Nginx 服务器块与 Apache 虚拟主机文件同义,并具有相同的用途。

本主题演示如何在 Ubuntu 20.04 上设置 Nginx 服务器块。

先决条件:

  • 在您的域名托管提供商上定义的 A 记录。 A 记录是将域名指向公共服务器 IP 地址的 DNS 记录。在本指南中,我们将使用域名 crazytechgeek.info 进行说明。
  • 安装在 Ubuntu 20.04 LTS 实例上的 Nginx 服务器或 LEMP Stack。
  • 具有 Sudo 权限的登录用户。

满足所有要求后,让我们探讨如何在 Ubuntu 中设置 Nginx 服务器块。

第1步:创建Nginx文档根目录

首先,我们将为域创建一个单独的目录,其中包含与域相关的所有设置。

sudo mkdir -p /var/www/crazytechgeek.info/html

接下来,使用 $USER 环境变量分配目录的所有权。这会将目录的所有权分配给当前登录的用户。确保您使用普通用户帐户而不是 root 身份登录。

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

接下来,为该目录分配适当的权限,授予登录用户所有权限(读、写和执行),而组和其他用户仅授予读和执行权限。

sudo chmod -R 755 /var/www/crazytechgeek.info

正确配置目录权限和所有权后,我们需要为该域创建一个示例网页。

第 2 步:为域创建示例页面

在此步骤中,我们将创建一个 index.html 文件用于测试目的。当在浏览器上调用域时,此文件将提供将在 Web 浏览器上显示的内容。

sudo vim /var/www/crazytechgeek.info/html/index.html

粘贴以下 HTML 内容。

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

保存并退出配置文件。

第 3 步:在 Ubuntu 中创建 Nginx 服务器块

Nginx 服务器块位于 /etc/nginx/sites-available 目录中。默认的 Nginx 服务器块是 /etc/nginx/sites-available/default ,它提供默认的 HTML 文件 /var/www/html/index.nginx-debian.html

对于我们的例子,我们需要创建一个服务器块来提供我们之前创建的 index.html 文件中的内容。

因此,创建所示的服务器块文件。

sudo vim /etc/nginx/sites-available/crazytechgeek.info

粘贴以下内容:

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info www.crazytechgeek.info;

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

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

保存并退出文件。

步骤 4:在 Ubuntu 中启用 Nginx 服务器块

要启用 Nginx 服务器块,您需要将其符号链接到 /etc/nginx/sites-enabled/ 目录,如图所示。

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

至此,我们已经基本完成了。然而,谨慎的做法是确认所有配置均按顺序进行。为此,请执行命令:

sudo nginx -t

如果您正确遵循我们的步骤,您应该会得到显示的输出:

最后,重新启动Nginx以使对配置文件所做的更改生效。

sudo systemctl restart Nginx

然后通过运行显示的命令确认 Nginx 是否正在运行:

sudo systemctl status Nginx

第 5 步:在 Ubuntu 中测试 Nginx 服务器块

要确认服务器块是否按预期工作并且正在提供 /var/www/crazytechgeek.info 目录中的内容,请打开 Web 浏览器并浏览服务器的域名:

http://domain-name

您应该获得服务器块中 HTML 文件中包含的内容,如图所示。

结论

在本指南中,我们向您展示了如何在 Ubuntu Linux 上使用单个域设置 Nginx 服务器块。您可以对不同的域重复相同的步骤,仍然获得相同的结果。我们确实希望该指南富有洞察力。