微服务网关3-配置路由和跨域

摘要:
predicates:断言的作用是进行条件判断,只有断言都返回真,才会真正的执行路由。
一、基本配置

1、路由和断言

在application.yml文件中添加路由配置

  • -:表示数组元素,可以配置多个节点
  • id:配置的唯一标识,可以和微服务同名,也可以起别的名字,区别于其他 Route。
  • uri:路由指向的目的地 uri,即客户端请求最终被转发到的微服务。
  • predicates:断言的作用是进行条件判断,只有断言都返回真,才会真正的执行路由。
  • Path:路径形式的断言。当匹配这个路径时,断言条件成立
  • /**:一个或多个层次的路径
#spring:
  cloud:
    gateway:
      routes:
      - id: service-edu
        uri: http://localhost:8110
        predicates:
        - Path=/user/**

2、测试网关路由转发

访问:http://localhost:9110/user/info
请求转发到:http://localhost:8110/user/info

二、注册到nacos注册中心

1、网关中添加依赖

<!--服务注册-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2、主类添加注解

@EnableDiscoveryClient

3、添加nacos配置

#spring:

#  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos服务地址

4、添加gateway配置

#spring:

#  cloud:
#    gateway:
      discovery:
        locator:
          enabled: true # gateway可以发现nacos中的微服务

5、修改uri配置

将uri的地址修改成注册中心中的微服务地址,网关姜葱nacos中按照名称获取微服务

uri: lb://service-edu   #lb:表示在集群环境下通过负载均衡的方式调用

6、测试

访问:http://localhost:9110/user/info

7、匹配多个path

- Path=/user/**, /*/edu/**
三、跨域配置

1、前端配置

修改guli-admin中 config/dev.env.js,BASE_API指定到网关地址

  BASE_API: '"http://127.0.0.1:9110"',

2、删除后端跨域配置

此时可以删除微服务中的跨域注解@CrossOrigin
例如 service_edu中 LoginController的跨域注解

3、跨域配置

package com.atguigu.guli.infrastructure.apigateway.config;

@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedMethod("*");
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config);
    
        return new CorsWebFilter(source);
    }
}

注意:去掉后端的所有跨域配置

四、完整的路由配置

1、yml配置

routes:

- id: service-edu
  uri: lb://service-edu
  predicates:
  
  - Path=/user/**, /*/edu/**
- id: service-cms
  uri: lb://service-cms
  predicates:
  
  - Path=/*/cms/**
- id: service-oss
  uri: lb://service-oss
  predicates:
  
  - Path=/*/oss/**
- id: service-sms
  uri: lb://service-sms
  predicates:
  
  - Path=/*/sms/**
- id: service-trade
  uri: lb://service-trade
  predicates:
  
  - Path=/*/trade/**
- id: service-ucenter
  uri: lb://service-ucenter
  predicates:
  
  - Path=/*/ucenter/**
- id: service-vod
  uri: lb://service-vod
  predicates:
  - Path=/*/vod/**  

2、前端配置

(1)修改guli-site中 utils/request.js,BASE_API指定到网关地址

baseURL: 'http://127.0.0.1:9110',

(2)所有的api模块中的baseURL可以删除
(3)guli-admin上传相关表单中action地址的修改

data中定义:

BASE_API: process.env.BASE_API

html中使用:

:action="BASE_API+'/admin/oss/file/upload?module=avatar'"

免责声明:文章转载自《微服务网关3-配置路由和跨域》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【c#搬砖记】用Docx导出word格式的docx文件动态链接库知识点总结之三(如何以显示的方式加载DLL)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Quartz+log4net实现控制台程序定时运行,并且记录日志

c# 控制台程序定时运行,并记录日志。 组件Quartz +log4net Quartz定时运行程序,log4net记录日志。 首先建立控制台程序“QuartzTest” 安装Quartz、log4net这两个组件。如下图流程 安装Quartz 安装log4net 安装完毕后引用里多了如下 然后在项目中添加log4net.config 并将log...

Calendar Provider

英文原文:http://developer.android.com/guide/topics/providers/calendar-provider.html 关键类 CalendarContract.Calendars CalendarContract.Events CalendarContract.Attendees CalendarContrac...

画画板--第三方开源--DrawableView

Android上的第三方开源DrawableView支持手写,类似于写字板。DrawableView支持改变画笔颜色,画笔线条粗细,画布的手势缩放和拖曳显示部分区域。并最终支持将手绘的图保存到本地。在github上的项目主页:https://github.com/PaNaVTEC/DrawableView先把布局文件中写一个DrawableView:...

微信公众号--JS-SDK

JS-SDK 微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。 JS-SDK使用步骤 l  步骤一:绑定域名 先登录微信公众平台进...

Linux下weblogic启动报错unable to get file lock的问题

非正常结束weblogic进程导致weblogic无法启动 由于先前服务器直接down掉了,所有进程都非正常的进行关闭了,也就导致了下次启动weblogic的时候报了以下错误:<2012-3-2 下午05时08分34秒 CST> <Info> <Management> <BEA-141281> <una...

小米路由器3-R3 刷固件

1.刷机前的路由器升级准备 1-1、首先进入路由器原声后台:miwifi.com 1-2、在右上角,点击系统升级、在系统版本下边选择手动升级,选择资源包里的:“miwifi_r3_all_55ac7_2.11.20.bin” 文件(如下图所示) 1-3、升级完成后,设置路由器后台密码,这里随意即可。 2.开始刷机 2-1、将资源包里的:“PROMETH...