开发者学堂课程【精通 Spring Cloud Alibaba:基于 nginx 部署 gateway 集群环境】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/634/detail/10119
基于 nginx 部署 gateway 集群环境
在配置两个网关时,配置转发的服务都是一样的,没有任何变化,相当于把2个网关把他的 jar 包打成2份,配置是完全一模一样的,没有任何变化。
需要格外注意的是它的环境配置,一般网关默认情况下段号为80,但为了做区分。
Nginx 配置的两个网关可以进行环境配置如下:
网关 1:127.0.0.1:81
网关2 :127.0.0.1:82
此时会存在一个如下服务器:
Nginx 服务器 127.0.0.1:80
现在成功启用一个网关81,此时可以访问127.0.0.1:81,输入/member,传递token=1,,访问并传递token
Nginx 在访问网关时,用户如何知道访问的是哪个网关?
如何知道会员服务是通过网关81还是网关82进来的?
原理如下:
会员服务获取 IP 时是网关的 IP,包括 nginx 获取 IP 地址时也是获取的网关的 IP。
假设现在不存在 nginx,会员服务获取 IP 地址是有网关的,这是不正确的。
相当于获取到真实 IP 地址,之后会传递到会员服务,此时会员服务会获取到参数。
但是现在有会员服务想得知是从81过来的还是从82过来的, 一旦转发到81网关的时候, 81网关会再写一个端号,会员服务此时获取到IP地址。
首先在请求头中存放 serverport,相当于网关中重写了请求头,加了一个端号。此时,会员服务在获取端号,这个端号是网关的请求头传过来的。
这就是访问81端号时会展示出来的原因,所以此时可以把网关配置成集群,也就是再加入一个网关,再写一个IP地址作为82,再启动一遍就有82的端号。
此时,网关集群已经搭建完成,需要注意 Nginx 获取蓝牙地址也是 nginx 位,相当于网关获取到真实 IP 后会在企业中传递给会员服务。首先,在请求头中存放serverport,读取网关IP账号,此时会员服务可以进行获取。
可以去把网关配成集群,写一个 IP 地址82,一个网关集群就搭建完毕。
需要进行 nginx 的配置,首先在本机号里面配置一个gw.may ikt.com,然后负载均衡到两个网关。
首先到 Windows System 32中找到目录 ETC,在 hosts 文件中加127.0.0.1,再去配nginx, 再次访问,传递 token 实现功能。