将请求从 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/apiapi.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)的主要内容,如果未能解决你的问题,请参考以下文章

通过https忽略htaccess文件

HTTP requests.post 超时

如何从 GIT 恢复旧的拉取请求

HttpResponseCache 不清除旧文件?

R服务器请求json

在新的 Wordpress 安装下重定向旧的子目录页面请求