Как настроить прокси для клиента netty в spring-cloud-gateway? - PullRequest
0 голосов
/ 03 июля 2019

(чтобы весь запрос от Spring-Cloud-Gateway к нисходящим сервисам проходил через прокси)

Я ссылался на https://github.com/spring-cloud/spring-cloud-gateway/issues/176.

Настроил прокси для клиента netty, выполнив

spring:
  cloud:
    gateway:
      httpclient:
        connectTimeout: 5000
        proxy:
          host: test.proxy.local
          port: 8080

Когда выполняется вызов к шлюзу Spring-Cloud, я ожидаю, что вызов пройдет через прокси-сервер и приземлится в фактическом настроенном нисходящем URL.

Когда прокси-сервер пытается подключиться, я получаю следующую ошибку

 i.n.handler.proxy.ProxyConnectException: http, none, test.proxy.local/172.18.199.200:8080 => api.cicd.ps.money:80, status: 403 Proxy denies fulfilling the request
    at io.netty.handler.proxy.HttpProxyHandler.handleResponse(HttpProxyHandler.java:188)
    at io.netty.handler.proxy.ProxyHandler.channelRead(ProxyHandler.java:260)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at i.n.c.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at i.n.c.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
    at i.n.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
    at i.n.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
    at i.n.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at i.n.c.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at i.n.c.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at i.n.c.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
    at i.n.c.n.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:648)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:583)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:500)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462)
    at i.n.u.c.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
    at java.lang.Thread.run(Thread.java:748)
...