【发布时间】:2017-01-27 11:01:19
【问题描述】:
我正在尝试使用 AWS API Gateway 作为反向 HTTP 代理来处理部署为弹性 beanstalk 应用程序的几个原型 Web 应用程序:
配置
每个 EB 应用程序都在 API Gateway 中映射到其应用程序名称下,例如
/hello1 (API Gateway mapping) --> prototype1 EB application
/hello2 (API Gateway mapping) --> prototype2 EB application
... etc
这是我创建的整体映射:
API 网关似乎在每个映射中处理对根资源的请求,例如'/' 与对子资源的请求不同,因此我为两者都设置了代理映射:
根 ('/') 资源是直接的(即非贪婪的)代理映射:
然后对于根上下文下的任何东西都有一个贪婪的代理映射:
然后我将 API 部署到名为“master”的阶段
我的想法是访问每个原型,我会获取 URL http://protos.acme.com/<stage>/<proto_name>,例如http://protos.acme.com/master/hello1.
问题
我发现如果我在 URL 中添加一个斜杠,或者指定一个特定的资源,例如index.html 然后一切正常,例如
但是,如果我从 URL 中省略尾部斜杠,例如http://protos.acme.com/master/hello1 然后 API 网关完成的 URL 重写停止工作,代理内容中的任何 URL 都不再正确解析,因为它们省略了原型名称,例如http://protos.acme.com/master/index.html。
我找不到任何方法来配置省略尾部斜杠时的行为,我认为强制我的用户始终记住尾部斜杠是不可接受的。
感谢任何见解!
艾德
【问题讨论】:
-
您可以分享您在“非贪婪”任何方法中使用的集成端点吗?假设该方法正确,您的配置应该可以工作。
-
我已经测试并确认上述配置对我有效。请提供您如何为贪婪和非贪婪方法配置端点 URL。
标签: amazon-web-services proxy reverse-proxy aws-api-gateway