有时,您可能需要在Nginx Web 服务器上托管多个域或网站。为此,需要配置服务器块(虚拟主机)来封装域的所有配置。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> <头> <title>欢迎来到 your_domain!</title> </头> <正文> <h1>太棒了!您的服务器块正在按预期工作!</h1> </正文> </html>
保存并退出配置文件。
第 3 步:在 Ubuntu 中创建 Nginx 服务器块
Nginx服务器块位于该/etc/nginx/sites-available
目录中。默认的 Nginx 服务器块在/var/www/html/index.nginx-debian.html/etc/nginx/sites-available/default
处提供默认的 HTML 文件。
index.html
对于我们的例子,我们需要创建一个服务器块来提供我们之前创建的文件中的内容。
因此,创建所示的服务器块文件。
$ sudo vim /etc/nginx/sites-available/crazytechgeek.info
粘贴以下内容:
服务器 { 听80; 听[::]:80; 根 /var/www/crazytechgeek.info/html ; 索引index.htmlindex.htmindex.nginx-debian.html; 服务器名称crazytechgeek.info www.crazytechgeek.info; 地点 / { try_files $uri $uri/ =404; } access_log /var/log/nginx/crazytechgeek.info.access.log ;error_log /var/log/nginx/crazytechgeek.info.error.log ; }
![](https://www.alaica.com/wp-content/uploads/linux-919.png)
保存并退出文件。
步骤 4:在 Ubuntu 中启用 Nginx 服务器块
要启用Nginx服务器块,您需要将其符号链接到/etc/nginx/sites-enabled/
所示目录。
$ sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
至此,我们已经基本完成了。但是,请谨慎确认所有配置均按顺序进行。为此,请执行命令:
$ sudo nginx -t
如果您正确遵循我们的步骤,您应该会得到显示的输出:
![](https://www.alaica.com/wp-content/uploads/linux-920.png)
最后,重新启动Nginx以使对配置文件所做的更改生效。
$ sudo systemctl 重新启动 Nginx
然后通过运行显示的命令确认 Nginx 是否正在运行:
$ sudo systemctl 状态 Nginx
![](https://www.alaica.com/wp-content/uploads/linux-921.png)
第 5 步:在 Ubuntu 中测试 Nginx 服务器块
要确认服务器块是否按预期工作并提供目录中的内容/var/www/crazytechgeek.info
,请打开 Web 浏览器并浏览服务器的域名:
http://域名
您应该获得服务器块中 HTML 文件中包含的内容,如图所示。
![](https://www.alaica.com/wp-content/uploads/linux-922.png)
结论
在本指南中,我们向您展示了如何在 Ubuntu Linux 上使用单个域设置Nginx服务器块。您可以对不同的域重复相同的步骤,仍然获得相同的结果。我们确实希望该指南富有洞察力。