在 Elastic Beanstalk 上公开 POST 端点

Posted

技术标签:

【中文标题】在 Elastic Beanstalk 上公开 POST 端点【英文标题】:Exposing POST Endpoint on Elastic Beanstalk 【发布时间】:2017-07-28 09:44:04 【问题描述】:

我有一个 Chrome 扩展程序,它需要通过 POST 请求将数据发送到我在 Elastic Beanstalk 上运行的单独应用程序。正如使用 cURL 确认的那样,POST 端点本身可以​​通过 http 正常工作。

但是,鉴于我从非源域发布 JSON 数据,AJAX POST 请求是通过 https 执行的。这导致来自 Chrome 扩展程序和 cURL 的 POST 请求超时。我已经对如何在 Elastic Beanstalk 上更改 nginx 服务器上的 CORS 设置进行了一些研究,但我真的不知道我在做什么,并且有点抓住稻草。如何在 ELB/nginx 上启用 CORS?

【问题讨论】:

【参考方案1】:

在 EB 机器上工作的 NGINX 实例只是将请求代理到您的应用程序并将响应传回给客户端。您可以在应用程序中设置 CORS 标头,仅此而已。

【讨论】:

所以我在我的 express 应用程序中添加了 CORS 标头,但是对应用程序的任何 https 请求仍然超时。也许这不是 CORS 问题?有没有其他方法可以测试看看有什么问题? CORS 问题不会导致超时。您说即使使用 curl 也无法通过 HTTPS 访问,并且 curl 不关心 CORS。我猜你没有在 ELB 上启用 HTTPS 侦听器。检查您的 URL 是否正在侦听端口 443。 我添加了一个 HTTPS 服务器,现在它在本地使用 curl。仍然需要让它在 AWS 上远程工作。 您应该查看有关如何在弹性 beanstalk 上启用 HTTPS 的文档。似乎超时是由于缺少设置引起的。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…

以上是关于在 Elastic Beanstalk 上公开 POST 端点的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 上的 Tomcat:公开多个端口

VPC 中的 Elastic Beanstalk 应用程序无法公开访问

Cloudfront 在连接到 ELB/Elastic Beanstalk 时抛出 504

如何在 AWS Elastic Beanstalk 上配置我的 WSGI 应用程序的名称?

如何将 mongoDB Docker 映像部署到 Elastic Beanstalk?

AWS Elastic Beanstalk 上的 Docker 端口映射