将请求从 example.com:8000(旧 REST API)转发到 AWS 上的 api.example.com(新 REST API)
Posted
技术标签:
【中文标题】将请求从 example.com:8000(旧 REST API)转发到 AWS 上的 api.example.com(新 REST API)【英文标题】:Forward requests from example.com:8000 (old REST API) to api.example.com (new REST API) on AWS 【发布时间】:2019-04-14 12:32:36 【问题描述】:所以我有这个问题,我有点困惑从哪里开始。我有一个 Django REST API 当前在 VPS(使用 apache)上运行,并以 djangos runserver
命令开始(我知道,我知道,这不是最好的方法),因此目前通过 http://example.com:8000/api
访问它。
我现在正在迁移到 AWS 并使用 Elastic Beanstalk 来运行我新创建的 Django REST API。我想保留类似example.com/api
或api.example.com
的域。现在这对我来说应该没问题,但我现在遇到的问题是我想使用旧 API 将所有旧请求转发到新 API。最好的方法是什么?
任何帮助将不胜感激! :)
【问题讨论】:
重要的是要知道,如果您的 API 使用POST
,那么它可能会或可能不会被重定向正确支持。有关更多详细信息,请参阅here。
【参考方案1】:
有两种方法可以做到这一点。
重写 重定向重写:
通过重写,您可以使用旧 api 读取内容并根据相同的请求提供服务。
重定向:
通过重定向,您可以将带有重定向位置的 302 发送到您的新 API 网址。
对http://example.com:8000/api/something 的任何请求都将以http 状态代码302 和http://example.com/api/something 或http://api.example.com/something 的位置响应
如果您不希望使用旧的 API,那么最好重定向到新的目的地。
如果可以在客户端更改 URL,那么您可以放弃维护旧端点或任何这些过程。
希望对你有帮助。
【讨论】:
以上是关于将请求从 example.com:8000(旧 REST API)转发到 AWS 上的 api.example.com(新 REST API)的主要内容,如果未能解决你的问题,请参考以下文章