基于 nginx 部署 gateway 集群环境|学习笔记

简介: 快速学习基于 nginx 部署 gateway 集群环境

开发者学堂课程【精通 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 实现功能。

相关文章
|
8月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
287 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
5月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
204 14
|
12月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
12月前
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
627 1
|
12月前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
703 0
|
3月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
197 0
|
4月前
|
缓存 监控 Java
说一说 SpringCloud Gateway 堆外内存溢出排查
我是小假 期待与你的下一次相遇 ~
523 5
|
4月前
|
Java API Nacos
|
10月前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
744 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
8月前
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
1246 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践