Настройка Spring Cloud Gateway
Я хочу использовать Spring Cloud Gateway в качестве моего обратного прокси-сервера для доступа к нескольким службам, которые я запускаю через Docker. Вот мой конфиг Java:
@Configuration
public class GatewayRoutes {
@Bean
public RouteLocator routeLocator(RouteLocatorBuilder routeLocatorBuilder) {
return routeLocatorBuilder.routes()
.route("website", r ->r.path("*/").uri("*:8080"))
.route("myapp", r ->r.path( "*/url1/**").or().path("*/url2/**")
.uri("*:3002"))
.route("security", r ->r.path("*/api/**").uri("*:3000"))
.route("service3", r ->r.path("*/url3").uri("*:3009"))
.route("configuration", r ->r.path("*/config-server").uri("*:8980"))
.build();
}
Я пытаюсь сделать следующее:
- когда url1 или url2 (которые сопоставляются с одной и той же службой), тогда запрос направляется службе, работающей на 3002.
- когда приходит запрос, глядя на /api/
затем служба, работающая на порте 3000, получает запрос.
- и т. д. для других услуг.
У меня нет предварительной фильтрации токенов или чего-либо еще настроенного. Фактически, эта @Configuration является единственной частью, определенной до сих пор. Однако, когда я делаю запрос GET от Почтальона к http://localhost/, я получаю ошибку:
2018-08-19 15:02:44.537 INFO 1 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port(s): 80
2018-08-19 15:02:44.542 INFO 1 --- [ main] u.f.m.a.a.ApigatewayApplication : Started ApigatewayApplication in 5.928 seconds (JVM running for 6.878)
2018-08-19 15:02:49.114 TRACE 1 --- [-server-epoll-6] o.s.c.g.f.WeightCalculatorWebFilter : Weights attr: {}
2018-08-19 15:02:49.168 TRACE 1 --- [-server-epoll-6] o.s.c.g.h.RoutePredicateHandlerMapping : No RouteDefinition found for [Exchange: GET http://localhost/]
2018-08-19 15:02:49.207 WARN 1 --- [-server-epoll-6] .a.w.r.e.DefaultErrorWebExceptionHandler : Failed to handle request [GET http://localhost/]: Response status 404
Я чувствую, что упускаю что-то очевидное здесь, но я не вижу примеров в Интернете, которые бы показали мне, что это может быть.