2016-08-12 2 views
1

나는 spring-WS를 사용하여 WSDL을 구현하는 마이크로 서비스 (스프링 부트)를 가지고있다. Zuul을 사용하여 게이트웨이 서버를 통해 WSDL에 액세스하는 것이 계획입니다. 게이트웨이에서 액세스Zuul 프록시 뒤에있는 스프링 -

은 : HTTP // 192.168.1.5 : 8080/통합/WS/test.wsdl

Zuul 경로가 게이트웨이로 구성되어

:

integration: 
    sensitive-headers: 
    path: /integration/** 
    url: http://localhost:9090 

는 WSDL이 반환된다 올바른 포트 번호 (8080)이지만 잘못된 호스트 이름. 또한 접두사 "/ integration"은 반환되지 않습니다.

<wsdl:service name="TestPortService"> 
    <wsdl:port binding="tns:TestPortSoap11" name="TestPortSoap11"> 
     <soap:address location="http://localhost:8080/ws"/> 
    </wsdl:port> 
</wsdl:service> 

수동으로 X-Forwarded-For 헤더를 설정하더라도 호스트 이름이 변경되지 않는 것 같습니다. [나는 주울없이 시험한다.] Spring-WS가 프록시를 사용하기 위해 내가 누락 된 부분은 무엇입니까? 나는 원격 부트 버킷의 응용 프로그램 속성에서 remote_ip_header & protocol_header를 설정했습니다.

답변

1

Zuul은 요청이 기본적으로 전달되기 전에 실제로 요청에서 프록시 접두어를 제거합니다. 개별 서비스에 대해 아래처럼 stripPrefix=false으로이 동작을 끌 수 있습니다. 당신이 모든 라우팅에 대한 zuul.stripPrefix=false

application.yml 
zuul: 
    routes: 
    users: 
     path: /myusers/** 
     stripPrefix: false 

희망을 원하는 경우에이 문제를 해결할 것입니다.

관련 문제