我希望使用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是唯一定义的部分。但是,当我从邮递员向http://localhost发出GET请求时,收到错误消息:
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
我感觉这里缺少明显的东西,但是我没有看到任何在线示例可以显示出它可能是什么。