AWS ElasticBeanstalk + Socket.IO + SSL 问题

Posted

技术标签:

【中文标题】AWS ElasticBeanstalk + Socket.IO + SSL 问题【英文标题】:AWS ElasticBeanstalk + Socket.IO + SSL issue 【发布时间】:2017-10-15 02:28:37 【问题描述】:

我在使用带有 NodeJS 环境 + Socket.IO + SSL 的 AWS ElasticBeanstalk 用于我们的消息传递应用程序时遇到问题。

我已经在绕圈子试图解决这个问题,但我总是以 Websocket 握手错误 (504 GATEWAY_TIMEOUT) 告终。


AWS Elastic Beanstalk 负载均衡器配置:


ELB 安全入站规则


实例的安全入站规则


响应错误


前端代码

提前致谢。非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

终于!!!明白了!

所以在烧了很多小时之后,这个solution 对我有用。

问题是我的负载均衡器中有 HTTPS 指向我的 ec2 实例上的 HTTP。这会导致问题,因为 websocket 在 TCP 而不是 HTTP/S 上运行。在我的情况下,端口号也很重要。


原始配置(不工作)


新配置(工作)

我希望这对将来有帮助。 :-)

【讨论】:

InstancePort(TCP 为 80,SSL 为 8080)中的差异是有意的吗?如果不是,那背后的原因是什么? @Aldee 我也有相同的证书设置来对 API 和套接字进行网络调用(负载均衡器)。所以,如果我将其更改为 SSL,我的所有网络调用都会失败,因为它正在寻找 https此外,对于套接字服务器正在监听 8080 。我需要更改它以收听 443 吗?有什么建议吗?

以上是关于AWS ElasticBeanstalk + Socket.IO + SSL 问题的主要内容,如果未能解决你的问题,请参考以下文章

强制 https aws elasticbeanstalk

从在 ElasticBeanstalk 中运行的 Flask 应用程序使用 AWS

在 AWS 上使用 ElastiCache 和 ElasticBeanstalk 配置 Redis

是否有任何东西可以将 AWS::ElasticBeanstalk::Environment 链接到它创建的嵌套堆栈?

Rails 部署到 AWS ElasticBeanstalk/RDS 失败

AWS Elasticbeanstalk 部署错误