2014-07-04 3 views
0

우리 Apigee 구성은 작은 다음과 같습니다어떻게 정확하게 위치 헤더를 반환하고 Apigee와 HATEOAS합니까?

넷 스케일러 LB -> Apigee 라우터/메시지 프로세서 -> 넷 스케일러 LB - 대상 서버 (들)

이 경우 대상 서버가 뉴저지와 자바 appliation입니다 , 저지 @Context를 사용하여 Location 헤더를 설정하는 관련 URI 정보를 검색하지만 모든 요청 세부 정보는 Netscaler와 관련이 있으며 원래 요청이 아닌 것 같습니다. 우리가 AssignMessage 정책을 사용하여 수동으로 무엇을해야으로 모든 작품 클라이언트가 다음 호출하는 URL로는 X-전달 - 호스트 URL을 설정 한 경우

. 불행하게도이 코드를 하드 코딩하는 대신 사용할 수있는 변수가없는 것처럼 보입니다. 변수 주위의 문서에있는 모든 내용은 도메인 자체의 경로 만 가져올 수 있음을 나타냅니다.

+0

-은 https : // WWW를 .youtube.com/watch? v = Id_yQ5e6sgw - 하드 코딩 된 부분은 없지만 – Michael

답변

0

<ProxyEnpoint> 요청 세그먼트에서 변수 request.header.host을 참조 할 수 있으며 클라이언트가 Apigee에 요청한 호스트를 제공합니다.

예를 들어 URI가 https://myorg-test.apigee.net/resource 인 경우 ProxyEndpoint의 요청 세그먼트에있는 request.header.host의 값은 myorg-test.apigee.net입니다. 당신이 TargetEndpoint이를 참조하려고하면

, 그것은 이미 대상 요청에 대한 백엔드 호스트와의에 덮어 쓸 수 있습니다. 당신이 한 targetEndpoint에 필요한 경우, 먼저 ProxyEndpoint/PreFlow/Request의 변수에 할당하고 나중에 변수 originalHost 참조 할 수 있습니다 : 나는 기본적으로이 비디오에서 이루어집니다 무엇을하려고

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<AssignMessage async="false" continueOnError="false" enabled="true" name="grabOriginalHost"> 
    <AssignVariable> 
     <Name>originalHost</Name> 
     <Ref>request.header.host</Ref> 
    </AssignVariable> 
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 
    <AssignTo createNew="false" transport="http" type="request"/> 
</AssignMessage> 
+0

고마워요. 그렇다면 X-Forwaded-Host보다는이 값을 사용하는 것이 좋습니다. X-Forwarded-Host도 Apigee 앞에있는 Netscaler에 설치되어있는 한 작동합니다. – Michael

관련 문제