我们正在尝试修改现有的apigee API代理,以便在传入请求为HTTPS时使用HTTPS目标端点,并在请求也是HTTP时使用HTTP。我认为我可以使用virtualhost.ssl.enabled
并基于此创建RouteRule
?或者有一种首选(或更容易?)的方式吗?
谢谢!
答案 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(最后一个已评估)始终匹配。