00:00
那前面我们刷出了首页的内容,那接下来呢,我们来搭建一个域名访问环境,我们希望在这访问我们这个项目地址的时候,不是用local host1万这些端口,我希望呢能访问一个,比如鼓励mail.com我们这个域名,我来回车的时候呢,自动给我刷出这个首页,那按照我们这个正常流程,我们如果项目上线的话,我们需要买一台服务器,我们有一个公网IP地址,这样的话呢,别人都能访问到我们这个服务器,然后为这个公网IP地址,我们再来绑定上我们这个域名,然后呢,我们再来做一些备案等操作,接下来别人访问我们这个域名,那就相当于访问我们这个服务器,就能访问到我们这个项目,那这个呢太麻烦了,我们现在在开发环境,我们先来搭建出这个基本环境,那上线以后呢,我们才需要做这些正规流程,那好在这个开发环境里边呢,我们就来结合我们以前的NX,我们可以来搭建出我们整个的域名访问环境,但这个inx呢,我们。
01:00
现在是安装在我们的虚拟机里边,而且这个Ning我们在讲ES的时候,我们安装了它,做了咱们这个分词器,我们将分词器的内容放到里边,远程请求我们NS返回分词器的数据。而NGS呢,我们在以后的项目中经常使用它的反向代理和负载均衡,那我们经常会说反向代理,什么是反向代理?我们可以提前来区别一下,既然有反向代理,那就有正向代理,其实这个正向与反向是对于我们自己的这台电脑来说,那我们要上网,如果他帮我们去来上网了,那他就是一个正向代理。如果他是帮助我们对方服务器了,那他就是一个反向代理,比如举一个例子,我们的科学上网,我们想要访问谷歌,如果访问不上,那我们可以呢,搭建一台代理服务器,我们去购买网上代理服务器或者什么都行,然后我们为电脑配置上我们代理服务器的地址以后,电脑想访问所有的网址,那我们呢,都会由代理服务器帮我们去来访问,访问拿到内容以后再帮我们返回,所以我们看到的是我们自己搭的这个服务器,是帮我们进行上网,那这个呢,就是正向代理,那它的这个用途,比如我们的这些科学上网,而且它的作用呢,就是隐藏我们客户端信息,那如果我们使用了正向代理,由我们请求呢,是发给我们的代理服务器,由代理服务器转给我们网络,整个互联网的,所以互联网上呢,看到的所有的访问IP地址来源于哪一个IP,那都是来源于代理服务器的IP的。
02:40
这是我们说的正向代理,那接下来呢,就有一个反向代理,反向代理呢,在我们搭建集群环境的时候呢,非常需要,比如我们任何人去来访问我们的鼓励商城,那我们鼓励商城呢,有我们的后台服务集群,这个服务集群呢,每一个服务器我们都可能要在内网部署,这是一个内网IP,不可能把这个每一个服务器的外网IP我们暴露给外界,这样呢容易引起攻击,那这样做的话呢,我们整个内网服务器集群,为了能找到他们,我们就可以在他们的前边前置一个我服务器,买这个服务器呢,我们就叫反向代理,比如我们前置一个N,这个N呢是拥有公网IP,大家都可以进行访问的。
03:23
无论你处在中国、美国、伊拉克,我们都可以来进行访问,但是如果我们去来访问我们这个公网的这个服务器,真正我们项目是在我们内网的这个服务集群里边部署着,所以呢,由我们这个服务器就要带转给我们的服务集群,而这个服务器呢,也是跟我们这个服务集群我们搭建在我们的整个服务环境里边,它可以帮我们找到我们这个服务集群在哪里,所以呢,它相当于屏蔽了对外界屏蔽了我们整个内网服务集群的信息,比如我们的商品服务在哪个IP地址,我们的订单服务在哪个IP地址,我们现在都不知道,但正向代理呢,就不是屏蔽了我们互联网信息,因为大家谷歌在哪个IP地址大家都知道,但就是访问不了,所以呢,反向代理是我们搭建项目环境的时候,我们是一定要用到的,那我们现在呢,就利用它的这个功能,我们将N作为反向代理,我们请求鼓励mail的时候,先来到N,由N。
04:24
的转交给我们对应的后台服务集群。那这台NG呢,就拥有一个外网IP,这个外网IP就是大家公众都能访问的,而我们整个内网服务集群,每一个人都只有内网的IP地址,比如192168等等,那这个地址呢,仅限于我们局域网内部,除了这个局域网,大家呢都访问不到,所以我们就用N作为我们的反向代理服务器。我们来完成整个的域名功能,但是呢,要完成整个域名的环境,我们先来分析一下我们的流程,我们流程呢,首先是我们的机器来访问古丽麦尔。
05:01
以我本机环境为例,我们搭建的这个域名访问环境也只以我们本机为例,我本机想访问鼓励ma.com那默认的访问流程,比如我们想要访问3W点百度点com。这个请求呢,先会被网络的DNS进行解析,解析到百度的IP地址到底在哪,然后呢,我们的浏览器就会访问到这个IP地址对应的内容。那正是我们这个域名解析,我们虽然呢没有购买鼓励mail等这些域名,但是呢,我们可以在Windows内部的host文件里边,我们配置上我们域名对应哪个IP地址。比如我在浏览器上,我来敲鼓励mail.com,那Windows怎么知道这个域名对应哪个IP地址,它会呢?先第一个查看它系统内部的域名映射规则,如果这个域名已经有映映射了,说这个鼓励ma com在哪个地址,那我们浏览器呢,就可以直接去这个地址,这是网卡带我们直接转过去的。
06:02
接下来第二个,如果我们系统内部没有说古力麦在哪个地址,那我们想要访问,那我们就是先去网络上的DNS,比如我们之前配Linux系系统系统的时候。备用DNS,什么114,点114,还有888,我们先去网络上的DNS先来解析出我们这个域名,DNS里边保存了每一个域名都对应哪个IP地址,每一个域名都对应哪个IP地址,这只不过是在公网保存的。他先帮我们解析到我们这个域名对应的IP地址,然后呢,我们再来转到那个IP地址。所以呢,基于这个原理,我们想要访问古力il.com,我们就可以先在Windows系统内部,我直接配置,我说古力mail com域名在哪,那就不用过网络DNS,那直接来到我们指定的IP地址,那指定的IP地址在哪呢?由于我们把N我们装在了虚拟机上。所以呢,我们可以让他这个域名指定是我们虚拟机的IP地址。
07:04
那么就来配置,那配置这个域名呢?我们完整的这个域名的host文件存的路径比较深,我们WINDOWS1打开给大家看,在C盘里边,我们这有一个Windows,它呢有一个SYSTEM32目录,我们来找一下,先来找到我们SYSTEM32 system32里边有我们的drivers这个目录,我们来找一下drivers在下边,Drivers里边呢有一个ETCETC里边有一个host文件,这个host文件呢,相当于我们Windows内部我们保存了哪个域名对应哪个IP地址,比如local host这个域名,那对应的IP地址就是我们本机127.0.0.1。那么先来修改这一块,但这一块修改每次进来太麻烦了,我给大家呢,发了一个软件,咱们鼓励商城里边,这软件里边呢,有一个Switch host,这个VIP解压以后呢,就在这来把它呢打开,大家一定要用我们的管理员身份打开,我们改这个。
08:05
Host文件我们必须是管理员,这一块呢,展示了我们当前系统的这些域名映射规则,比如我们来创建一个方案,我在本地方案这我点击一个添加,我们添加一个新的方案,我们就叫鼓励ma,我们鼓励商城的这个方案,好,我点一个OK,我们创建了一个方案,这个方案里边呢,我们来指定上域名,比如我们鼓励mail.com,鼓励mail.com它对应的呢,是我们这个虚拟机的IP地址,IP地址我们得写到前边,比如我们对应的IP地址是192.16 8.56.10,这样呢,我们以后Windows,我们在浏览器上访问,我们鼓励麦点。com就会访问到这一块,当这个方案写好了,一定在这儿勾选对号,那应用当前这个方案,那应用好方案以后呢,接下来我们就来访问我们这个虚拟机,那正好呢,我们虚拟机安装了我们这个ES9200端口,我原来呢是用IP地址访问,我现在呢切成域名,那我们使用。
09:05
鼓励mail.com我们来访问9200回车,诶我们发现呢,这一块有内容,那我们就访问到了,说明我们这个域名环境我们就搭建好了,包括我们访问K班的也可以用5601,我们来访问了,5601走。这块班呢,也是拿域名都是可以访问的,那我们第一步我们的域名环境先搭好了,我们无论访问什么域名,比如我们以后search点古妙il.com也好,Item也好,Member也好。我们每一个系统呢,都有对应的域名,那全部呢,都是先访问到我们的虚拟机的IP地址,那接下来呢,我们要访问虚拟机的N,我们就先来开启我们虚拟机的NX,我来直接连上虚拟机,我们看现在默认访问域名有没有什么内容,我们来直接访问域名来回车。来访问域名,但我们现在直接访问域名呢,发现没有什么内容,那说明虚拟机的这个ndi我们没开启,来连上虚拟机,那虽然装了N,但这个N呢,我们好像没有给它设置自动启动,来看一下刀ERPS,我运行中的我们确实没有N几来doer PS-A,我们发现呢,这个NX没有这个自动启动,那我们给它doer update。
10:23
我们的in杠杠restart等于OS,我们让它呢,每次都能自动启动好我们docker PS,然后呢,我们重新把它N几个呢启动一下,它下一次呢就会自动启动好N几。那NS启动以后呢,我们来检查一下docker PS,好,我们现在NS呢是启动起来的,我们监听的是虚拟机的八零端口,那然后呢,我们在这再来访问古里面,诶我发现呢,访问的就是NG的这个in贝页面,那这就没问题了,那我们先保证了第一步,当我们来访问域名的时候,访问到了我们虚拟机的NX,那接下来还要访问到我们的项目怎么办?
11:08
那接下来呢,就可以让我们项目把所有的请求都转给我们的网关,由网关再代转给我们每一个项目,当然也可以直接让恩斯转到我们指定的项目,比如我们一看访问的是古力麦点com,那现在呢,相当于就想要用首页,相当于呢,古力ma来到的所有请求都给我转发到我们local host1万端口,也就是我本机,我这里边的这个1万端口,这1万端口呢是商品项目,这个项目呢,它拥有我们的这个页面首页的内容,但是这样做呢,不好,我们说未来我们这个product项目部署多台的时候,有可能端口不一样,IP地址也不一样。那每次呢,我们可能都得修改NS,让所有鼓励mail.com来的这个请求,相当于鼓励mail.com来的请求都给我转到这个1万端口,所以呢,我们现在就缺一件事儿,恩X呢,我们在这是配好了,我们现在呢缺让恩帮我们进行反向代理,帮我们进行反向代理,其实他如果作为反向代理跟我们的网关功能那就是一样的了,好,当我们进行反向代理的时候,进行反向代理怎么进行呢?就是。
12:27
所有来自于来自于鼓励mail第2COM的请求的请求,因为我们要首页都转到都转到我们的商品服务,所以呢,我们可以最快的配置,我们先来做最快的配置,那最快的配置呢,我们可以不用去网关,我们直接配置N。来源于古力mail的请求直接转到我们的local house和1万端口,那怎么配这个呢?我们来到我们的NS,我们NS装好以后,我们将N的所有配置我们都放在挂载到了外边NGX,我们的这里边有一个con文件夹,好在这个文件夹里边呢,这是N康菲格的这个总配置,然后呢,我们看一下这个总配置,它呢有一个细节,这总配置里边配置了我们这个user n相当于用户组叫NS。
13:26
包括我们的worker的这个线程等等等等,以及我们PID文件的位置,错误日志的位置,还有最大连接数,我发现呢,这还有HDP,那NS整个配置文件这一块都有什么,我们在这儿呢,给大家做做一个简单的介绍,NS配置文件,我们在这个总配置文件里边,首先呢分为这么几个部分,第一部分呢是全局框,那全局块呢,就是配置一些影响NS的一些全局命令,比如我们的用户组,我们刚才看到这个呢,就是我们的用户组,包括我们的这个worker的这个进程数量配置等等,在这一块呢,是全局块的配置,还有我们这日志,那这一块呢,相当于我们的全局的一些配置。
14:08
接下来呢,还有events,这是事件块的配置,我们这个events块呢,能配很多东西,在我们默认配置文件里面呢,只有一个实例,就是允许最大连接是1024,比如它还可以配置我们的一些序列化,包括事件驱动的处理模型等等等等,有一大堆那些事件块完了以后,N里边还能配置我们这个叫HTTP块,我们看到htt里里面呢,有非常多的内容,这一个大括号结束这HTTP块里边,那前边这一堆,也就是我们HTTP块里边的基本规则,全局配置HTP块呢,我们在这。它能配很多的东西,比如连接超时时间,包括我们日志缓存等等,那现在默认的HTP块里边配置了一些,比如我们支持的ma类型,包括默认返回的这些数据类型,以及我们这个日志的这些格式,在这儿也有包括我们的访问日志,我们都放在了哪个位置,以及是否开启压缩等等功能,这是我们HTTP块的配置,那就是在这一块。
15:14
包括后来我们做负载均衡,我们也会配它的upstream上游服务器等等信息,接下来呢,HTP块里边最重要的就是这些server块,但我们发现呢,这一块呢,HTP块结束了,没有server块,那大家注意这一句话,Include叫包含,包含所有ETC n config d下的这些新点config。那这块的意思呢,就是它会包含所有config地下的这些配置文件,因为我们把这个配置文件挂载到了外边,所以我们来看我们在外边的这个里边呢,有一个conf DM CD进来,只要是con f d里边的所有配置文件,那都会被合并放到NG con f里边,所以他把这个文件呢拆开,这样呢,我们一个文件就不会很大,我们配置起来也比较清晰,比如我们来看它的默认配置,我们刚才看到这个engines总配置的时候,看它engines我们来的这个总配置我们来。
16:13
Count,我们点点杠我们的这个NG的总配置,我们看总配置的时候呢,在HTP块里边包含了我们相当于con d里边的所有内容,那么来看一下con d里边的这个默认配置,这个默认配置呢,发现这就是一个server标签,我应不应该把它叫server标签,应该叫server块,那么这个server块里边的这个配置呢,就是来配置我们这些虚拟主机相关的信息。比如我们默认的这个server块里边的内容,它来监听八零端口,而且呢,Server name,这是相当于利用域名配置的虚拟主机,我们相当于监听这个域名下的东西。包括它的一些访问日志,而且location杠杠的意思呢,就是我们这个域名下的所有请求我们都可以在root root呢就是它的这个跟文件夹都可以在这个文件夹下找,包括呢,默认的首页都是这个,包括还能配一些404页面,500页面等等信息,所以呢,这就是一段server的配置,那我们现在想要做的一件事,就是我们希望把源自于鼓励ma com的请求能转给我们商品服务,那鼓励mail com,那现在一访问,现在来到N了,默认的八零端口,我们相当于来到NS的80LOCAL house的配置这一块了。
17:35
他给我们整首页了,但我们看的不是他,我们希望呢,他能帮我们转到这个1万端口展示首页,那这块怎么配呢?我们可以直接来做,最简单的,我们先不说转到网关,那为了配置方便,我来把这个复制一份,我把default复制一份,我们就叫古力ma的配置config,好,我们来LS,我们现在呢有这么一个配置,我们来VI,我们来编写我们古励mail的这个配置,这个配置我们写什么呢?首先so name我来写鼓励ma.com,好,我来写一个鼓励ma.com。
18:11
要说他是来监听,来自于鼓励mail这个域名下的,为什么能做到这个事儿,我们先来看一个我们发的所有请求,比如发的这个请求,我来回车,我们发这个请求的时候呢,我们是从哪个域名下发的请求,我们这个请求图里边呢,都有一个host地址是来源于这个域名。我们这个请求呢,由为它的IP映射的是N,相当于我们这个请求的信息交给了N,而我们server name的这一块配置,我们来看一下servername的这一块配置,我配的是古励mail,相当于NS会拿到请求里边的host进行匹配,看是不是古励mail的,相当于我们的匹配规则,就类似于我们网关在进行转发的时候。网关以前配置呢,是按照请求路径是以什么前缀来进行匹配的,我们也可以按照你是来源于哪个主机地址进行匹配的,所以呢,我们NS在这相当于接听来源鼓励ma com这个主机地址,那监听到以后呢,接下来鲁开声到它下面的所有请求我们就不在这找了,我们把它删掉ESC,我们先退出插入模式来写个DDDD,好删除这一行,我们在I进入插入模式来写上这一句话,这一句叫什么呢?我们叫一个叫proxy pass。
19:31
Proxy pass就叫代理通过,也就说我们这个代理给谁,相当于把我们请求再转交给转交给我们来指定一下HTTP冒号双斜杠,因为我们的现在的这个商品服务现在又在我的机器没在虚拟机,所以我呢又绕一圈又回来。那我就来写我的机器,我的机器呢,我可以来写192.16856.1,我们来看一下啊,我们的机器呢,有这么几个IP地址CD一下,我们叫IP com。
20:09
我们来看一下,我们呢本机地址是3.3,这是没问题的,而我们虚拟机呢是56.10,我们这个跟虚拟机的中间的这个网卡,它是56.1,所以56.1呢也能访问到我本机,比如192.168.56.1这个呢算我们本机,包括呢3.3也算我们本机,而且我们虚拟机也都ping得通,所以呢,我们比如可以写一个192,好,我们来进入插入模式。我们这个插入模式里边呢,我们来写192192.168.3.3,或者56.10,我们来写一个56.1,诶这是56.1,我们进入到我们的1万端口,这个1万端口是我们的商品服务,我们来WQ。
21:01
E s cw q退出并保存,然后呢,我们让docker重启一下n restart走。那NS重启以后呢,我们这一块相当于配置了一个这个信息,就是说呢,鼓励mail这个域名下的所有请求都代理给56.1,所以我们再来访问古力麦点com来回车。那我们这一块呢,没有访问到,没有访问到的原因呢,我们先来看一下,我们先来doer PS,我们看一下我们的in有没有启动,哎,我们发现这个in呢,Restart这启动有问题,那我们来doer locks,我们来看一下我们的N为什么启动有问题。这个有问题呢,说我们N的配置文件古mail con第十行的配置有问题,那说明我们这个配置做错了,那么再来VI编辑一下古ma con,走它第十行,那我们来输入冒号set number,我们让它显示行号,我们来到第十行。
22:06
第上方这一块的大括号,诶,其实是这,我们说NS的每一个配置一定得以我们的分号结尾写完以后呢,我重重新配退出WQ,然后呢,我们来doer restart一个。我们先来看一下docker PS,我们的N现在呢,启动成功了,我们再来访问古力mail com,看能不能访问到我们首页走。诶,我们发现呢,访问到了这个首页,那这个原理是什么呢?我们再来捋一遍,原理呢,就是这样,首先我们浏览器访问古力me.com,我们在Windows里边指定了我们鼓励mail com映射的是虚拟机IP,所以我们浏览器相当于访问鼓力mail.com,先会来到我们虚拟机,然后来到我们虚拟机以后我们虚拟机里面的NX,我们又监听了八零端口。比如我来看看我们的古力麦IL的这个配置,那这个配置呢,它监听了所有来源于八零端口,而且是域名是古力meil.com的,所以我们这个请求来到虚拟机以后,它符合我们是八零端口,我们监听八零端口,而且域名是古me.com,然后呢,我们NS又帮我们代理到我们本级,所以呢,绕一圈又回到我们这个服务,现在我们又访问到这儿了,那也就是我们先来域名来到恩吉,恩吉S呢配置了鼓励meil.com代理到我们的1万端口,我把这一块截图拿下来。
23:34
好,主要是这一段。把它呢,我们来完成,我来复制放在这儿,那我们这一段的配置呢,就是让我们所有的请求都转到了我们的商品服务。只要是古力mail com的,又给我们代理到1万端口来到这儿了,所以我们看到了我们的整个域名访问效果,访问古力mail com我们就能来到我们这一块。但是呢,现在还有一个问题,如果是我们分布式情况下,我们这个商城系统呢,可能有很多不止一个,那我们每次呢,可能都要修改我们NX的这一块配置,Progressy pass,我们代理呢,不止这一个位置,那每次修改这一块呢,太麻烦了,所以呢,我们这一块应该是让恩配置,让他将我们这个古ma com这个域名的请求直接代理给我们网关,那就好了,有网关呢,它自动的再转发给我们各个服务。
24:32
网关呢,就能动态的发现哪些服务上线下线,而且网关也具有负载均衡功能,所以呢,我们下一节课给他加上网关,来搭建好我们整个的域名访问环境。大家先来理解一下我们这个绕一圈又回到我们自个儿这儿的域名访问环境。
我来说两句