根据请求使用HTTP / HTTPS目标

时间:2014-05-30 16:34:30

标签: apigee

我们正在尝试修改现有的apigee API代理,以便在传入请求为HTTPS时使用HTTPS目标端点,并在请求也是HTTP时使用HTTP。我认为我可以使用virtualhost.ssl.enabled并基于此创建RouteRule?或者有一种首选(或更容易?)的方式吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

参考Apigee variables,变量client.scheme包含http或https,具体取决于客户的请求。 virtualhost.ssl.enabled也可能有用,但client.scheme对我来说似乎更直接。您应该能够使用这些RouteRules:

<RouteRule name="httpTarget">
  <Condition>client.scheme == "http"</Condition>
  <TargetEndpoint>httpTarget</TargetEndpoint>
</RouteRule>
<RouteRule name="httpsTarget">
  <!-- default to https -->
  <TargetEndpoint>httpsTarget</TargetEndpoint>
</RouteRule>

请注意,最后一个RouteRule没有条件 - 通常最佳做法是至少有一个RouteRule(最后一个已评估)始终匹配。