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

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

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

接下来,它将使用该目标端口来确定将该信息转发到哪个应用程序,这意味着您的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 虚拟主机(服务器块)和托管多个域,要为另一个域创建虚拟主机,只需重复相同的步骤。

    推荐阅读
  • 交通违章怎么消分 车辆违章怎样消分

    )第三,车辆被盗抢期间,可携带相关证明车辆被盗抢材料申请行政复议。第六,信号灯指示与现场交警指示不一致,以交警指挥为准,这时候被记录违章可行政复议。4)变更违章行为。

  • 包粽子的叶子是什么植物的叶子(包粽子的叶子是什么植物的叶子北方)

    2、包粽子的叶子需要满足以下三个特点,第一是有清香味,第二要水煮后不破,第三是叶子面积大,这样才好包粽子。

  • 省发展改革委下达3.07亿元资金加快推进重大项目前期工作

    近日,省发展改革委下达今年第一批3.07亿元省级前期工作专项资金,支持167个重大项目做深做细前期工作。省发展改革委聚焦省委、省政府对今年经济工作的部署要求,抢抓国家政策机遇,持续加大“四化”和培育打造“3533”重点产业集群、重大基础设施、生态环保、社会民生、安全保障等领域项目支持力度,对争取增发国债等中央资金项目给予重点支持。

  • 将夜2宁缺到底有多强(将夜2即将开播叶红鱼)

    前日,无数粉丝翘首以盼的《将夜2》终于发布了终极预告,2分22秒的精美预告依旧延续了《将夜1》的风格,打斗戏依旧如行云流水一般。《将夜2》最大的惊喜,同时也是最大的变数,就是昊天由选秀出身的锦鲤女孩杨超越饰演,昊天作为将夜世界中实力排行榜的第一的boss,其能力甚至超越了夫子。原著情节中,桑桑是在荒原遭到了世界联军的围困后,导致黑暗的能力觉醒,不得已释放了身体里面的寒气,与其对抗。

  • 12月24日不是“平安夜”,是长津湖战役胜利的日子!丨新路口观察

    12月24日不是“平安夜”,是长津湖战役胜利的日子!这成千上万的点赞,都是献给守护我们平安的先辈英烈,献给时刻准备挺身而出的中国军人!但就是在这样巨大的物质差距中,中国人民志愿军凭借着强大的意志力打出了“美国陆军史上的最大败绩”。七十三年前的长津湖战役有多艰苦,如今中国的和平就有多么的珍贵!

  • 济南周末大型商业中心(济南商业颜值巅峰)

    设计理念和楼体造型开创济南商业综合体先河。酷炫造型打造商业颜值巅峰近年来,汉峪的发展有目共睹,各种项目利好遍地开花。大批金融机构、企业总部汇聚汉峪金谷,为区域带来源源不断的高收入人群。不过经过持续推进落实,济高控股旗下的星光天地广场正在逐步复工,与其隔路相望的新光Village开工计划也已提上日程,汉峪片区即将迎来商业综合体“双光交汇”局面。项目毗邻汉峪金谷,辐射周边几十个社区,举步可达地铁7号线凤凰南路站。

  • 什么水果是不能吃的(不能吃的水果)

    不吃雇主家的水果,是因为有很多雇主都是口是心非的。我有一个老乡,也是一个住家保姆,雇主倒是挺好,他说王姐,在我们家别客气哈,这水果呀,零食呀,你想吃啥就吃啥,我们家没有那么多规矩。这就是为什么有很多的保姆在雇主家的水果宁可放坏了也不会去吃的主要原因。对此你有什么不一样的看法?欢迎在评论区留言。

  • 蔬菜烧麦做法步骤(蔬菜烧麦怎么做步骤)

    下面内容希望能帮助到你,我们来一起看看吧!蔬菜烧麦做法步骤食材:金针菇2两、胡萝卜1根、饺子皮50克、火腿肠1根、黑木耳1克、生抽1勺。首先把食材都切成小丁。加一勺生抽入味。装一勺馅在饺子皮中间然后用左手慢慢的收口右手把饺子皮捏成一个个花瓣就这样一个个的做好放在蒸格上。锅里加水然后放在蒸锅里蒸大火15分钟就关火等2分钟拿出来。装在盘子里开吃。

  • 翡翠ab货怎么去分辨(如何辨别翡翠ab货)

    仔细看,B货C货的翡翠边缘往往呈现微弱的蓝紫色的光。这是填充的有机胶质的反射光的颜色。表面:看表面一般需要借助放大镜,10倍即可。翡翠A货表面一般较光滑,尤其是种老的翡翠;B货表面往往有连续的腐蚀坑。而A货的色不同,有“颜色结实”的说法。重量:A货翡翠是天然翡翠,密度很高,约为7,拿在手里会感觉比较压手;B、C货已经经过人工腐蚀、充胶处理,内部结构已经被破坏,自然密度会有所下降。

  • 锻炼身体怎么做(如何正确锻炼身体)

    锻炼之前要充分的热身,要规划一定的时间,一般每次在30分钟到1个小时左右。锻炼身体要选择适合自己的运动方式,比如肥胖的要选择有氧运动,而且持续时长超过半小时,比如慢跑、快走、游泳、跳舞等。形体瘦弱的需要增肌就要选择力量性的,多做无氧运动,比如哑铃、杠铃、深蹲等。