Higress非K8S安装及实际使用

应用场景:非K8s,仅nginx+nacos+各微服务的项目
nginx的配置仅做项目页面跳转,不做服务接口地址转发等
Higress 是基于阿里内部构建的下一代云原生网关,官网介绍:https://higress.io/zh-cn/docs/overview/what-is-higress/
实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力,
在最新的 Higress 1.1 版本中,支持脱离 K8s 部署。
本文将使用 Higress 替代原有的 Spring Cloud Gateway,实现 Spring Cloud 微服务的无缝迁移。
1、在传统的虚拟化部署中,微服务通常选择使用 Spring Cloud Gateway 作为业务网关,而nginx则作为前置流量网关。
2、在容器和K8s主导的云原生时代,Ingress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关和微服务网关的合并成为可能。
3Higress 是基于阿里内部构建的下一代云原生网关
 ,实现了流量调度 + 服务治理 + 安全防护三合一的高集成能力,并深度集成了DubboNacosSentinel等微服务技术栈
提供两个参考关于HigressK8S环境下的安装文章
1:https://mp.weixin.qq.com/s/dqqXb-svEZBO_c_cd4D9IA
2:https://mp.weixin.qq.com/s/6KX6hkEnGz0xqi8UDxqJjw

环境安装

需要配置环境(linux环境):docker compose
docker 一键安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装后会出现需要手动启动docker,启动指令如下:
systemctl start docker

在这里插入图片描述

安装higress

安装时顺便配置nacos地址:
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- -c nacos://ip:8848
或者安装时可配置nacos的账号密码,管理登录初始密码:123456
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- -c nacos://ip:8848 --nacos-username=nacos --nacos-password=nacos -p 123456

进入到higress 的目录下

cd /root/higress/bin 

在这里插入图片描述

修改下nacos的地址

执行命令配置(可以不去配置,上面有初始化的话)
./configure.sh -r -c nacos://ip:8848
执行后结果如下,其中有管理的账号密码,要记下这个账号密码,登录管理页面时候用到

在这里插入图片描述

启动Higress

在这里插入图片描述

登录higress管理页面

higress的默认端口是8080
地址:http://ip:8080/

注:如果 已有服务运行端口为8080,则会端口占用,需要修改下higress的默认端口映射
由于基于 Docker Compose 设计的,进入到higress目录下的compose中,
修改文件配置:docker-compose.yml
这里将原来的8080 改成了8083
回到higress目录下的bin,执行启动脚本即可:./startup.sh
访问页面:http://ip:8083/   账号密码:admin/39ddf0d9a7f2483ed2d9cb1bfedab896

在这里插入图片描述

到此,Higress就安装结束,可以上管理页面看下,还没实际应用,后续用起来再更新
后续来了,本项目的实际使用如下

先配置服务来源

在这里插入图片描述

配置证书(HTTP的不配也行)

在这里插入图片描述

配置域名

在这里插入图片描述

配置路由

方法勾选OPTIONS,有个预请求,不配置的话会发不过去
在这里插入图片描述

给这个路由增加了一个重写的策略,就是由请求路径预实际的接口路径不一致,
通过当前的请求到网关,再重写到实际接口地址中去,实现所有接口先经过网关再到真实接口

在这里插入图片描述

postman测试

项目实际地址:https://域名:端口/core/api/v1/open/login/getLoginPage.json?url=ot.com
postman请求地址:https://域名:9443/test/api/pc/v1/api/login/getLoginPage.json?url=ot.com
https://域名:9443,这个是网关部署的地址,9443端口负载到了网关服务器的80端口或者443端口都行(这个要做,不然到不了网关应用)
简单来说就是:/test/api/pc/v1/api/ 转发到目标的/core/api/v1/open/

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐