Я хотел бы создать простой прокси-сервер и сервер-агрегатор с помощью spring-cloud-gateway. Для этого я использую зависимость spring-cloud-gateway-webflux
и ProxyExchange. Я запускаю приложение на локальном хосте и запускаю его из браузера, однако оно возвращает 404 не найдено.
Если я использую spring-cloud-gateway-mvc
вместо spring-cloud-gateway-webflux
, неожиданно работает прокси, и я могу просматривать stackoverflow на своем локальном хосте. Но все же хотелось бы узнать, почему spring-cloud-gateway-webflux
не работает.
Может ли кто-нибудь помочь указать на что-то, что мне не хватает?
контроллер:
@RestController
public class RouteController {
@RequestMapping(value="/**", method={ RequestMethod.GET, RequestMethod.POST })
public Mono<ResponseEntity<byte[]>> proxy(ServerHttpRequest request, ServerHttpResponse response, ProxyExchange<byte[]> proxy) throws Exception {
String path = proxy.path("/");
if (request.getMethodValue().startsWith("GET")) {
return proxy.uri("https://stackoverflow.com/" + path).get();
} else {
return proxy.uri("https://stackoverflow.com/" + path).post();
}
}
}
приложение.yml:
server:
port: 8080
Я попытался добавить следующее в application.yml, но это не сработало.
spring:
cloud:
gateway:
httpclient:
ssl:
useInsecureTrustManager: true
spring.cloud.gateway.proxy
. - person spencergibb   schedule 16.03.2020RestTemplate
по умолчанию игнорирует ошибки ssl, аWebClient
— нет. Вы можете создать bean-компонентProxyExchangeArgumentResolver
и соответствующим образом настроитьWebClient
. См. github.com/spring-cloud/spring-cloud-gateway/blob/ - person spencergibb   schedule 16.03.2020ProxyExchangeArgumentResolver
, но он все еще не работает. Код компонента находится здесь (github.com/william726/proxy-exchange-demo/blob/). Я не уверен, сделал ли я что-то не так, особенно. аннотации. - person William   schedule 17.03.2020WebClient
для вызова API или сайта, а не для использованияProxyExchange
и создания нового компонентаProxyExchangeArgumentResolver
. Он отлично работает и не жалуется на https или ssl. Это немного странно, и кажется, что 404 не имеет отношения к конфигурацииWebClient
. Код находится здесь github.com/william726/proxy-exchange-demo/blob/test-webclient/ - person William   schedule 17.03.2020