Spring Cloud Gatewayを使ってルーティングの設定をしてみた
4573 ワード
概要
Spring Cloud Gateway を使った設定を行ったときのメモ
環境
- SpringBoot:2.1.9.RELEASE
詳細
-
Spring Initializr から SpringBootのプロジェクトを作成
- Dependencies に
Gateway
を設定してプロジェクトを作成する
- 作成したプロジェクトの
build.gradle
は以下のような内容で生成されているはず
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.9.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'com.ap.itopics'
version = '0.0.1'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "Greenwich.SR3")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
- 作成したプロジェクトの
application.yml
に以下のような設定を追加していく
-
spring.cloud.gateway.routes
配下にルーティングする先のサーバー情報を記述していく
-
http://localhost:9001/frontend/**
にアクセスすると、http://localhost:9002
のサーバーにリクエストが送られるようになる
application.yml
server:
port: 9001
spring:
cloud:
gateway:
routes:
- id: frontend
uri: http://localhost:9002
predicates:
- Path=/frontend/**
filters:
- RewritePath=/view/(?<segment>.*), /$\{segment}
- id: backend
uri: http://localhost:9003
predicates:
- Path=/backend/**
filters:
- RewritePath=/webapi/(?<segment>.*), /$\{segment}
まとめ
-
Spring Initializr から SpringBootのプロジェクトを作成
- Dependencies に
Gateway
を設定してプロジェクトを作成する
- Dependencies に
- 作成したプロジェクトの
build.gradle
は以下のような内容で生成されているはず
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.9.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'com.ap.itopics'
version = '0.0.1'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "Greenwich.SR3")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
- 作成したプロジェクトの
application.yml
に以下のような設定を追加していく-
spring.cloud.gateway.routes
配下にルーティングする先のサーバー情報を記述していく -
http://localhost:9001/frontend/**
にアクセスすると、http://localhost:9002
のサーバーにリクエストが送られるようになる
-
application.yml
server:
port: 9001
spring:
cloud:
gateway:
routes:
- id: frontend
uri: http://localhost:9002
predicates:
- Path=/frontend/**
filters:
- RewritePath=/view/(?<segment>.*), /$\{segment}
- id: backend
uri: http://localhost:9003
predicates:
- Path=/backend/**
filters:
- RewritePath=/webapi/(?<segment>.*), /$\{segment}
まとめ
まだまだ他にも細かい設定ができそうなので、調べたり実装する機会があればその内容もまとめていこうかと思う。
Author And Source
この問題について(Spring Cloud Gatewayを使ってルーティングの設定をしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/nkk777dev/items/01f540e20ac3510b960e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .