00:00
那接下来我们继续优化我们的域名访问环境,那我们之前呢,是浏览器直接发送我们古力ma com请求,这个请求呢,会直接来到我们虚拟机的里边的NX,由NX呢在代理给我们的商品服务,但商品服务呢,在我们实际生产环境,它是一个动态伸缩的,那根据访问量我们可以多部署上几台,我们也可以呢,让他下线几台,腾出一些资源,但如果我们直接让NS代理给我们的商品服务。那我们需要呢,配置我们N代理的这一块去商品服务负载均衡,那这是一方面,第二方面,那商品服务到底有哪些台机器,那上线下线呢,我们可能还要动态天天来变,所以我们呢,应该是NX将请求交给我们网关,有网关呢,从我们注册中心来动态的发现我们商品服务都在哪,然后由网关给我们负载均衡到我们的商品服务,当然网关呢,我们也会部署多个,我们NG司呢,可以将所有请求先负载均衡放到某一个网关,然后由网关再给我们转发过去,那接下来这一块配置呢,我们就会用到我们NG司负载均衡相关的配置,那所有的这个配置呢,大家都可以参照NN的官方文档来打开看一下,在ins里边,好,我们随便n news,这是他老板的这个文档,这个网站呢,它是被我们F5进行收购了,好,我们如果它新的网站呢,也是迁移到这儿,我们也可以访问它都一样。
01:30
好,我们来在他老网站里边,这有的documention,我们的文档,文档里边呢,我们可以来看一下,在文档事例里边就有这些配置,比如我们这使用N作为HTTP的负载均衡配置,我们就可以来点进来,那点进来我们负载均衡的配置呢,就是在这在我们HTTP我们整个块里边,我们配上upstream,我们上游服务器指定上我们上游服务器的地址,然后呢,我们接下来转发的时候,我们在这配置代理的时候,我们就可以让它代理到我们上游服务器的这个名字,所以我们就来配上我们的这个上游服务器,上游服务器的配置呢,是在HTTP块里边,好把这一块呢退出来,我们conf d里边,我们列举的这些都是server块,它给我们提取出来了,我们CD点点杠来到我们NS配置的这个总配置文件里边,Vis conflictf,好,我们输入I,我们说的插入模式,那在这里边呢,有我们的这个include。
02:30
的,这是包含我们其他的这些server配置,然后呢,我们接下来再在这我们给它配上我们的上游服务器,我们就叫upstream,我们给上游服务器整个组呢起一个名字,比如我们就叫鼓励mail。上游服务器呢,有哪些服务器我们配置在它里边,每一个服务器呢,都使用server标签来写上服务器的地址,因为我们呢相当于是要转交给网关,所以我就来写192.168,我写我本机,我们现在网关呢,现在都启动在我本机的这个idea里边,我们如果部署到线上,我们再来改线上,好,我们先来转到本机56.1。
03:12
这也是能访问本机56.1冒号网关的端口是八八,由于我们目前呢只启动了一个网关,所以我们在这儿可以只配置一个,如果有多个,我们还可以继续在这来写server标签,好我们配置上了一个上游服务器来WQ保存,那我们NGS的总配置文件就修改了,然后呢,我们再来CD到我们conf菲里边,我们来修改我们古力麦尔的这个配置,在这个配置里边呢,以后它来监听到我们古励ma com的八零端口的所有请求,那要代理的话呢,就不直接代理给我们商品服务了,我们直接代理给我们的网关网关,我们整个上游服务器的名字就叫古力mail,那我们在这一块呢,它就会动态找到上游服务器组,它会负载均衡的转出去,好来WQ,这相当于呢,是我们负载均衡的配置来看它,古力妙把这块的配置呢,也给大家截一个图。
04:10
我们负载均衡的配置,我们在这儿好复制过来,那么最终呢就是改成它,我们呢让它路由到我们这个网关,而整个网关的上游服务器这个群组,我们来给大家也拿出来CD点点杠啊,然后呢,我们来看看我们的NG conf,这是我们来配置的整个上游服务器的地址upstream好点过来,然后呢,我们把这放在这,那这两个组合配置,这个是在HTTP块里边,这个是在server块里边。那么配好以后呢,来同样来重启in很方便,Docker restart ind就行了,那么重启起来以后呢,最好检查一下docker PS,我们看NS成功启动,如果有错误呢,它这会报我们NS退出,我们再用docker locks查看相关的错误来进行修改,好那现在呢,都是成功的,那相当于呢,我们发所有请求就转到网关了,好,那我们现在再来发请求,我来访问,鼓励迈尔。com回车,那现在转到网关了,那为什么这一块是404呢?那是因为网关没配置,那网关呢也要帮我们转到我们指定的服务,我们是鼓励mail来的这些请求,所以我们在网关再来配置路由规则,我们来到我们的网关,来到网关,在网关这一块呢,我们来再来配置路由规则,我们配置在最下边,这路由规则呢,我们来复制上一份,好,我们就叫鼓励mail host,鼓励mail。
05:42
Host,我们的这个路由,我们呢现在是主机路由,我们以前是负载均衡,我们现在负载均衡给哪个项目,我们希望的是我们所有的请求可以负载均衡给我们这个商品服务,而且呢,我们现在负载均衡给商品服务,我们以前是按照路径进行映射,但是呢,我们现在应该是按照我们看F12按照我们的host地址来回车,我们发请求的时候呢,请求上边会带我们的这个主机地址,主机地址呢,这有一个host host呢叫古ma.com。
06:18
我们应该是按照这个地址来给它路由过去,所以呢,我们在这来配置我们的断言规则,那就是我们的主机地址,那这一块怎么写呢,参照我们的网关对应的文档啊,这一块呢,关掉,来打开我们getway,好,我们spring cloud getway来打开它的这个文档。214。24、这个文档还没有了,我们来打开220,好,我们来看get外的文档,我们这有路由断言的这个工厂,在这个断言里边呢,有我们的host,路由断言相当于我们按照域名的方式路由,比如我们在这断言,我有多种规则,比如这个域名下的,这个域名下的都给我路由到这个地方,所以我们加上一个它就行了,我们也无需路径重写。
07:06
来加上域名的规则,这个filter呢我就去掉,而这个规则呢,我们是双心,它是可以写我们an分割的路径,双心呢就是任意的子域名,鼓励mail.com旗下的,我们在这配置上路由规则以后,我们来重启我们的网关走。重启网关以后呢?那接下来只要是古励mail域名下的所有请求,我们都转给了我们的古励mail product商品服务,我们现在来看一下我们最终的效果。好,我们现在如果再来访问我们的项目,我们用我们的域名,比如鼓励ma com我们来访问,那首先呢,代理给NSN吉S,再转交给网关,网关呢再转给我们的商品服务,好我来回车,我们看一下效果。现在这块效果呢,还是404,那404的原因是什么,我们可以先来看我们网关,我们网关呢,是不是匹配到我们整个这个路由映射了,好那在这儿来先来回车,那现在呢,网关想要路由古丽妙到我们的这个商品服务。
08:13
但我们这一块呢,没有什么效果,那我们重新访问一个随便的其他服务,比如我们来访问带API路径的,我们来访问古立麦尔,我们先来看能不能网关正确转达我们API路径,我们随便访问一个,比如我们API里边我来访问一个商品服务的这个APP接口,我们来到这来访问一个controltrler,我们就叫product at tr aggression,我们的这个下边的list回车。那么发现这个请求是可以的,那说明呢,我们网关确实N给我们路由到网关了,我们网关呢,映射API路径都行,API product旗下我们可以看到我们之前写的API product旗下给我们路由到商品服务了,但是呢,我们在做这做的域名,它却呢没有映射到,是由于这一块只允许子域名的原因吗?比如我们再来写上它真正的这个古ma.com,好,我们就算把它加上,我们再来试一下走。
09:15
有鼓励卖点。com以及它下面的所有子域名。我们都映射来到这个商品服务,因为我们在这儿访问的时候呢,我们带了一个古丽妙尔康,我们没带什么紫域名,那现在来测试。这个域名呢,现在能映射到网关没问题了,但是呢,通过这个域名访问网关还要转给我们的商品服务,我来回车,我发现呢还是404,所以接下来我们就得给大家说一个非常严重的问题,为什么我们网关没有把它路由过来,而我们用域名访问我们这个API接口却是可以的?那因为API接口呢,我们在这映射好API接口确实以API它来的,那我们给转交到这儿了,那说明我们这个映射规则没起作用,没起作用只有一个原因,就是我们这个host主机地址没匹配上,这个没匹配上这是跟我们N有关,因为N默认给我们代理转请求的时候,我们可以看一下,我们发请求的时候呢,请求有过一个host地址,相当于我们页面发送这个请求,然后呢交给N,当N在往给网关转的时候,它会丢掉我们这个host域名地址,所以呢,我们必须解决这个问题,我们来说一下这一块呢,唯一的一个坑就是in再来转发的时候in。
10:35
代理给网关,代理给网关的时候会。咱们这个丢失请求的。信息,其实呢,它会丢掉很多信息,那么后来呢,需要用到什么呢?我们来再给它加上,包括连我们默认的一些带的cookie。它有可能都会丢掉,所以呢,我们在这得配置NG,让他不要丢掉这些,那这个怎么配置呢。
11:03
我们需要修改我们NS的这一块的路径映射规则,我们给他呢要加上一个设置项,它呢有一个设置项叫proxy,我们这个代理,代理呢set head,我们叫设置头,设置什么请求头呢?我们之前的那个host请求头相当于被丢失掉了,所以呢我们必须给它重新设置上我们的host头这一块就是我们请求头的属性名,那它值是什么呢?我们使用Dollar符host取出当前请求真正的host头的值,我们需要设置上这一项,相当于我们加在这好,那这一项呢直接复制过来,但这些设置呢,大家都可以参照官方文档的这些配置项,我们先来设置上,那们还是来到NS的配置,我们来CD到我们con.d里边,我们相当于是修改location来为来到鼓励mail,我们的这个配置里边来是,哎在插入模式,我们在这来修改一下这proxy pass,我们将当代理到这个位置。
12:03
但在代理的时候呢,我们需要给他加上这个设置,就是我们说的progress,代理给我们设置上header,设置上哪个header呢?我们有一个header叫host,然后它真正的值就是当前请求host头对应的值,把这个呢加上我们来WQ重新保存,然后呢我们重启NG。我们来do restart。那么重启了以后呢,NS以后再来给我们鼓励mail啊,主要呢,大家看我们是给鼓励mail转发的时候呢,我们才配置上了加头,相当于呢,路由到我们网关,我们会加上头NGS,其他没设置的这些路径,那它默认呢都不加,好那们现在再来测试一下效果,那以前呢,我们访问古丽麦奥迪com是不行的,我们说这个原因是恩吉代理的时候呢,把这个头会丢掉,好我们现在再来回车走。
13:00
诶,我们发现呢,现在就可以访问成功,那访问成功的原因是什么?我们再来捋一遍整个流程,我们先来访问古丽麦尔点com,然后呢,我们浏览器在Windows里边配置了古力ma com呢是去虚拟机,所以我们来到虚拟机,虚拟机里边又装了in,所以我们来到inx,因为呢,我们访问古力麦点com默认不带端口,那就是访问八零端口,相当于呢来到了N80端口,然后呢,这个八零端口我们有一处配置,它专门来监听古励mail.com这个域名,那监听到了以后呢,我们这个N又会把它代理给我们网关,但代理给网关中间一个细节,它会丢失这个头,大家一定把这个头配置呢,再给它加上。那然后呢,恩迪代理给我们网关,我们网关一看,它的这个域名是来自古丽mail.com的,我们网关这一块呢,又有路由配置,古丽mail com的都来给我们的商品服务,所以呢,我们最终就转给了商品服务,而大家注意,我的这一段配置一定要放在最后边,如果放在最前边,大家看一下会出现什么问题好么呢,把这个放在最前边。
14:14
把这一块层级关系我们都写好,如果我把这个域名映射我放到最前边,我来重启我们的网关。那重启网关,我们现在来访问域名,我们来直接访问古mail com,我们先来看页面能不能访问回车。那网关呢,可能还没重启成功,好现在成了好刷新,那现在呢,页面能访问,但是我们之前的这个能不能访问来测一下,那之前呢,用域名还访问过我们的API。我们这有一个API list,点一下发现这个list呢是404,那这是为什么?这是由于我们网关一进来,我发的就算是API请求,由于优先匹配到域名,所以直接路由给我们商品服务,那他就会去商品服务里边找我们API整个全路径,但我们商品服务呢,我们真正是要把API这个前缀截串的,所以呢,它相当于就把下边的这个配置给禁用掉了,把我们真正的API请求没有截串,所以导导致的404,所以呢,我们把这个放在最后,那这样的话呢,我们以后呀,无论是发送API请求,我们是用域名发,还是直接给网关,我们写网关地址,点冒号八八我们给网关发都行,因为我们现在呢,即使我们用域名,域名代理一个网关,网关也会找到。
15:35
所以我们这块完整就配置好了,那我们最终实现的效果是什么?最终呢,就是我们无论发送什么请求,好,我们来写到这儿,我们最终这个域名映射的效果,域名就是映射效果,那我们这个效果呢,就是即使我们是请求接口也只交给NG4,就算是请求接口,我们的这个基准路径也不用写网关了,我们以前呢,在写我们后台管理系统的时候们配置整个基准路径,我们配置的是HTTP加上网关,加上它的端口号八八,那现在呢,都是拿域名访问,那接口的这个基准地址呢,也是域名鼓励mail.com,鼓励mail.com。
16:18
包括呢,我们这个请求页面,我们这个页面也是鼓励mail.com,我们页面呢,也可以拿域名直接来进行访问,这样呢,我们的恩都会代理给in,直接代理给网关,那网关呢会进行判断,那我们呢,网关进行判断,如果是API,如果是我们这个API开头的所有这些相当于是接口,那就呢转交给。对应的服务,那如果呢,是满足我们域名映射,如果是不是这些API请求,但是呢,满足我们这个域名映射,是满足这个域名,那我们的就转交给那么对应的服务,当还是转交给我们对应的服务,因为我们后来页面不仅在商品服务里边有我那订单,其他都有,所以呢,我们就在这儿做了一个整个映射的效果,那么至此我们这个映射就配置完了,我们无论是来访问我们的接口,还是来访问我们的页面,都应该能访问成功,那么来把这个接口呢,我们重新挪到了下边,只要重新启动,那我们这个接口呢,也就访问成功了。
17:34
好,我们现在来确认一下,先来看我们的这个页面能不能访问成功,那这个页面访问呢,我们现在直接用我们的域名回车,好,由于我们这个网关现在还没有启动成功,所以NG给我们返回404,我们重新来回车。网关启动成功以后呢,我们页面访问成功,然后包括我们用域名直接来访问接口走,那我们也是访问成功的没问题了,那么这个环境呢,我们就搭建完了,主要在这儿呢,一定要做好我们这个转发的时候,让N带上它的这个域名。
我来说两句