Nginx服务器块相当于Apache虚拟主机,使您可以在服务器上托管多个域或网站。
在本文中,您将了解如何在CentOS 8和RHEL 8 Linux上设置 Nginx 服务器块(虚拟主机)。
先决条件:
- 您的域的记录
A
。简单来说,A
记录是指 DNS 条目,其中域名指向服务器的公共 IP,在本例中为 Nginx Web 服务器。在本指南中,我们将使用域名crazytechgeek.info
。 - 安装在CentOS 8或RHEL 8实例上的Nginx 服务器或LEMP堆栈。
- 具有 Sudo 权限的登录用户。
让我们开始吧!
第1步:创建Nginx文档根目录
您需要立即为要托管的域创建一个自定义 Web 根目录。mkdir -p
对于我们的例子,我们将使用创建所有必要的父目录的选项来创建如图所示的目录:
$ 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/html
第 2 步:为域创建示例页面
接下来,我们将index.html
在自定义 Web 根目录中创建一个文件,一旦发出请求,该文件将由域提供服务。
$ sudo vim /var/www/crazytechgeek.info/html/index.html
在文件内,粘贴以下示例内容。
<html> <头> <title>欢迎来到 your_domain!</title> </头> <正文> <h1>太棒了!您的 Nginx 服务器块正在工作!</h1> </正文> </html>
保存并退出配置文件。
步骤 3:在 CentOS 中创建 Nginx 服务器块
为了让Nginx Web 服务器提供我们在步骤 2 中创建的文件中的内容index.html
,我们需要使用适当的指令创建一个服务器块文件。因此,我们将在以下位置创建一个新的服务器块:
$ sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf
接下来,粘贴下面显示的配置。
服务器 { 听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-923.png)
完成后,保存更改并退出配置文件。要确认所有 Nginx 配置均正确无误,请执行以下命令:
$ sudo nginx -t
下面的输出应该确认您已经可以开始了!
![](https://www.alaica.com/wp-content/uploads/linux-924.png)
最后,重新启动 Nginx Web 服务器并确认其按预期运行:
$ sudo systemctl 重新启动 nginx $ sudo systemctl 状态 nginx
![](https://www.alaica.com/wp-content/uploads/linux-925.png)
步骤 4:在 CentOS 中测试 Nginx 服务器块
我们已经完成所有配置。剩下的唯一部分是确认我们的服务器块是否正在提供文件前面定义的 Web 根目录中的内容index.html
。
为此,只需打开浏览器并转到服务器的域,如下所示:
http://域名
![](https://www.alaica.com/wp-content/uploads/linux-926.png)
正如所观察到的,我们的内容正在由服务器块提供服务,这清楚地表明一切进展顺利。
步骤 5:在 Nginx 托管的域上启用 HTTPS
您可以考虑使用Lets Encrypt SSL加密您的域,以添加一层保护并确保进出网络服务器的流量安全。
$ sudo dnf 安装 certbot python3-certbot-nginx $ sudo certbot --nginx
要确认您的域已在 HTTPS 上正确配置,请https://yourwebsite.com/
在浏览器中访问并在 URL 栏中查找锁定图标。
结论
我们已经在CentOS 8和RHEL 8上成功设置了Nginx服务器块。您可以使用相同的过程对多个域重复相同的操作。