概述
编辑
简介
Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio + Envoy为核心构建的下一代云原生网关, 实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力,深度集成Dubbo、Nacos、Sentinel等微服务技术栈
定位
在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理, 而在容器和 K8s 主导的云原生时代,Higress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能
官网
https://higress.io/zh-cn/
路由配置
编辑
编辑
编辑
依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>java_sc_alibaba</artifactId> <groupId>jkw.life</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>test-higress8006</artifactId> <dependencies> <!-- nacos-discovery --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- SpringMVC--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
application.yml
server: port: 8006 spring: application: name: test-higress8006 cloud: nacos: discovery: # 配置 nacos注册中心地址 server-addr: 192.168.66.103:8848
启动类
package jkw; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @Slf4j @EnableDiscoveryClient @SpringBootApplication public class Main8006 { public static void main(String[] args) { SpringApplication.run(Main8006.class, args); log.info("************** 服务提供者 8001 启动成功 ************"); } }
测试控制器
package jkw.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 测试控制器 */ @RequestMapping("/test") @RestController public class TestCon { @GetMapping("/index") public String index() { return "higress index"; } }
higress路由配置
原理剖析:higress从所在的nacos中获取服务,这些服务可以用higress作为网关
1.域名映射配置:使用Switchhosts进行域名映射,把higress所在地址映射域名【192.168.66.103 www.jkw.com】
2.域名管理:创建域名【www.jkw.com http】
3.路由配置:创建路由【8006-higress-test 精确匹配 | /test/index test-higress8006.DEFAULT-GROUP.public.nacos】
跨域配置
编辑
编辑
跨域问题的来源
源于浏览器的同源策略限制,同源策略是一种约定,同源策略是浏览器最核心也最基本的安全功能, 如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。 可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
简介
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
解决
CORS("跨域资源共享"(Cross-origin resource sharing)):目的域告诉请求者允许什么来源域来请求, CORS使得浏览器在向目的域发起请求之前先发起一个OPTIONS方式的请求到目的域获取目的域的信息
higress配置跨域
路由配置:策略:配置跨域