77百科网
当前位置: 首页 生活百科

nginx服务器教程(如何创建Nginx虚拟主机)

时间:2023-07-23 作者: 小编 阅读量: 2 栏目名: 生活百科

接下来,它将使用该目标端口来确定将该信息转发到哪个应用程序,这意味着您的Web服务器只能有一个接收请求的应用程序。这样做的主要好处是我们可以在Nginx服务器上创建许多虚拟主机文件,但我们可以根据我们的要求启用它们。该指令包含我们要用于访问我们网站的域名列表。

服务器块,在 nginx 中通常称为虚拟主机,允许您在一台服务器上托管多个网站,本文将教大家如何使用它们。

Nginx旨在处理单个服务器和 IP 地址上的多个域,换句话说,如果您有一台用作Web 服务器的服务器,并且它只分配了一个IP 地址,那么为了在服务器上运行多个网站或域,您可以使用 Nginx 虚拟主机。

在开始本教程之前,您需要安装 Nginx。

什么是虚拟主机?

这是一个Apache HTTP Server 术语,然而,Nginx 用户也经常使用它,事实上,Nginx 的正确术语是 server block

虚拟主机是一种在单个服务器上托管多个域名的方法。

虚拟主机如何工作?

当您在服务器上启动像 Nginx 这样的 Web 服务器软件时,该 Web 服务器将自己绑定到一个或多个网络端口,通常用于端口 80 和 443 的 Web 服务器。

现在,当计算机访问网站时,它将通过 Internet 向服务器发送请求,服务器将接收该请求。服务器要做的第一件事是查看请求发送到目标端口的端口。

接下来,它将使用该目标端口来确定将该信息转发到哪个应用程序,这意味着您的 Web 服务器只能有一个接收请求的应用程序。

但是,如果您想在同一 Web 服务器上托管两个不同的网站怎么办?

服务器需要能够判断数据包何时进入请求网站,它需要能够知道正在请求哪个网站,以便知道要发回哪些信息。

无论请求哪个网站,服务器都不能仅使用端口号和目标端口来确定客户端尝试访问哪个网站,服务器要做的就是说“我要向 Nginx 发送这个请求”,然后 Nginx 必须从那里决定它要发回什么。

Nginx 有一个叫做server blocks的概念,服务器块实际上可以用于两种不同的事情,它们可用于根据请求的 IP 地址为不同的网站提供服务,也可用于根据正在使用的域名为不同的网站提供服务。

因此,当您输入网站名称时www.example.com,当服务器收到该名称时,Nginx 实际上可以查看请求的服务器名称的 HTTP 标头内部,然后根据其配置的虚拟主机,决定存储哪个目录网站文件,并根据服务器名称将正确的响应返回给客户端。

如何创建 Nginx 虚拟主机(服务器块)

我们可以在两个目录中创建和存储我们的虚拟主机配置文件,它们都位于/etc/nginx目录中,这两个目录的名称是sites-available和sites-enabled。

    /etc/nginx/sites-available: 定义单个虚拟主机(网站)的目录。请记住,Nginx 不会使用在此目录中找到的配置文件,除非它们链接到该 /etc/nginx/sites-enabled 目录。/etc/nginx/sites-enabled:由 Nginx 主动提供服务的虚拟主机(网站)列表。

您可能想知道为什么我们需要两个目录来存储我们的虚拟主机文件?

这样做的主要好处是我们可以在 Nginx 服务器上创建许多虚拟主机文件,但我们可以根据我们的要求启用它们。

现在,我们将创建虚拟主机文件以在 Nginx 服务器中托管具有多个域的多个站点,域名为 website1.com 和 website2.com。

1. 创建目录结构

我们需要做的第一件事是为每个虚拟主机创建一个目录来存储不同的网站内容,我们将这些目录放在其中 /var/www ,并以每个域名命名。

运行以下命令来创建目录:

sudo mkdir -p /var/www/website1.comsudo mkdir -p /var/www/website2.com

Nginx 虚拟主机目录结构

-p 上面命令中的 标志告诉 mkdir 在此过程中创建任何必要的父目录。

2. 为每个网站创建测试页面

接下来,出于演示目的,让我们index.html 在域的文档根目录中创建一个 文件,以便我们可以显示一些内容。

sudo vim /var/www/website1.com/index.html

粘贴以下几行:

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Welcome to Website 1!</title></head><body><h1>Welcome to Website 1!</h1></body></html>

现在对 website2.com 重复上述步骤。

sudo vim /var/www/website2.com/index.html

粘贴以下几行:

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Welcome to Website 2!</title></head><body><h1>Welcome to Website 2!</h1></body></html>

3.创建Nginx虚拟主机(Server Block)

要在sites-available目录中创建 Nginx 虚拟主机文件,请执行以下命令:

sudo vim /etc/nginx/sites-available/website1.com

需要注意的是,Nginx 虚拟主机配置文件可以任意命名,但通常情况下,使用域名是一个好习惯。

现在,将以下内容粘贴到您的虚拟主机文件中:

server {listen 80;server_name website1.com www.website1.com;root /var/www/website1.com;access_log /var/log/nginx/website1-access.log;error_log /var/log/nginx/website1-error.log;}

为了让事情更清楚,让我们分解这个语法。以下是每个参数的含义:

    listen: 指定 Nginx 服务器在哪个端口上侦听连接。server_name: 在这里,我们匹配对我们域的请求。该指令包含我们要用于访问我们网站的域名列表。root:我们存储网站文件的目录的位置。error_log:我们存储此虚拟主机的所有错误日志的日志文件的完整路径。access_log:我们存储此虚拟主机的所有访问日志的日志文件的完整路径。

现在我们可以使用我们的初始虚拟主机配置作为我们第二个文件的基础,只需复制它以创建一个新文件:

sudo cp /etc/nginx/sites-available/website1.com /etc/nginx/sites-available/website2.com

打开新文件并调整它以匹配我们的第二个 ( website2.com) 域名:

sudo vim /etc/nginx/sites-available/website2.comserver {listen 80;server_name website2.com www.website2.com;root /var/www/website2.com;access_log /var/log/nginx/website2-access.log;error_log /var/log/nginx/website2-error.log;}

4. 启用 Nginx 虚拟主机(服务器块)

在测试之前我们需要做的最后一件事是启用虚拟主机,我们可以通过创建从文件到sites-enabled 目录的符号链接来做到这一点 :

sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/

如下图所示,这些文件现在已链接到sites-enabled目录中。

将 Nginx 配置文件链接到启用站点的目录中

在我们继续之前,让我们仔细检查一下是否有任何错别字。测试 Nginx 配置的正确语法:

sudo nginx -t

最后,如果没有发现问题,重启 Nginx 服务以应用更改:

sudo systemctl restart nginx

5. 测试虚拟主机(可选)

为了测试 Nginx 虚拟主机,我们首先需要将我们的域名记录指向服务器的 IP 地址,在我们的例子中,服务器 IP 地址是192.168.122.101.

如果您使用的是Linux,请使用以下命令在您的台式电脑(您将执行测试的电脑)上打开该/etc/hosts文件:

sudo vim /etc/hosts

并如下图一一添加虚拟域名。

完成后保存并关闭文件。以这种方式进行将允许我们测试我们实际上并不拥有的域。

现在打开浏览器www.website1.com和www.website2.com一一输入,您将分别看到两个域的索引页面。

您已经成功地使用 Nginx 配置了两个独立的域。

6. 禁用 Nginx 虚拟主机(服务器块)

要在 Nginx 中禁用虚拟主机,我们只需要删除我们在启用虚拟主机文件时创建的符号链接,例如,要禁用website2.com,我们只需要执行以下命令:

sudo rm -rf /etc/nginx/sites-enabled/website2.com

要应用更改,我们必须重新启动 Nginx 服务器:

sudo systemctl restart nginx

结论

在本文中,向大家介绍了如何在单个 Linux 服务器上创建 Nginx 虚拟主机(服务器块)和托管多个域,要为另一个域创建虚拟主机,只需重复相同的步骤。

    推荐阅读
  • 除夕夜吃什么 除夕夜吃什么?

    也称作扁食或煮饽饽。传说盘古氏开天辟地,使“气之轻清上浮者为天,气之重浊下凝者为地”,取“馄饨”与“浑囤”的谐音,意思是粮食满囤。吃年糕,由“年年(粘粘)高(糕)”的吉祥如意之意,演绎为年年高升之意。

  • 家庭艾灸排烟怎样处理(家庭艾灸排烟方法)

    家庭艾灸排烟怎样处理?以下内容希望对你有帮助!家庭艾灸排烟怎样处理形成小对流:在家里艾灸的时候,由于条件有限,可以将大门及大窗户关闭,把小窗户打开,形成小对流风,但是要注意艾灸的地方不能有风吹过。

  • otn技术的概述和特点(华为osn1800传输设备)

    全球正处于数据爆发式增长的时代,数据流动才能产生价值,其背后是由光传送网支撑的稳定、可靠的信息基础设施。相比SDH技术,单设备时延降低30%;第二是融合架构。华为于3月24-26日举办2021年华为行业数字化转型大会。

  • 广汽传祺gs4外观内饰(全新传祺GS4内饰设计曝光)

    2019年9月19日,随着最后一辆现款传祺GS4驶下生产线,第一代传祺GS4正式完成历史使命。四年多时间,累计生产1118725辆,第一代传祺GS4创下了令人艳羡的记录。以全新一代传祺GS4内饰设计草图为切点,可以看到广汽传祺在这款全新产品上倾注了心血,并把握住了主流消费者的需求,这将有利于全新一代传祺GS4走红SUV市场,早日助传祺GS4重回销量颠覆。

  • 微信状态怎么改(微信状态怎么更改呢)

    下面内容希望能帮助到你,我们来一起看看吧!微信状态怎么改打开微信,来到“我”界面,点击你的状态。这个时候界面底部会弹出选项卡,然后点击“设个新状态”。自行输入文案,点击“就这样”。这样我们就成功更改了状态。

  • 大龙虾肉为什么是苦的(苦大龙虾肉的原因分析)

    大龙虾肉为什么是苦的如果是买回来不是很新鲜的龙虾,那么吃起来苦是正常的,它有苦味是因为肉质中的蛋白质变性了,氨基酸腐败之后就会产生氨气,不过并不只有这一种情况,也有可能是在炒制的过程中炒的时间太久了。

  • 寒假作业自己做美食(特色寒假作业很)

    雁塔路小学有“劳动传递爱欢乐过大年”为主题的寒假作业,号召孩子们积极参加公益活动、社区活动,做好自我管理劳动,承担力所能及的家务劳动,践行垃圾分类,勤于动手制作,装扮新年。西安市中铁中学要求学生假期开展垃圾分类社会实践活动,加深对垃圾分类知识的了解,体验环卫工作的艰辛,变废为宝,让可回收垃圾再次“活”起来,并完成“垃圾分类”社会调查报告。

  • 每日一字翔(每日一字乐)

    上部""由三个部分组成,每个部件不可写宽。首先写中间的“白”,然后写左右的“幺”,“白”最高,两个“幺”左低右高,左中右下方要稍呈抗肩之势。下部“朩”的横笔要写长,托住上方,稍抗肩;竖钩对正上部的中间位置,不要长,垂直劲挺;下方两个点笔要注意位置、形态和角度

  • aux接口怎么操作(什么是AUX接口用好AUX接口)

    AUX接口多见于汽车上AUX接口看起来神秘,但说的直白点,其实就是常见于汽车音响的一种输入接口,真正的名称为辅助接口。不过很多汽车上的AUX接口却只能用于输入。如果想要用AUX接口来连接手机,可以用一种两头都是3.5mm规格的音频线。作为一种用的不太多的备用手段,AUX接口将会成为历史,将不复存在。