1

我正在尝试在运行 Nginx 和 Puma 的 Elastic Beanstalk 上部署带有 ActionCable 的 Rails 5.0 应用程序。

.ebextensions/nginx.config我有以下内容:

location /cable { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade websocket; proxy_set_header Connection upgrade; }

并且在config/environments/production.rb

config.action_cable.allowed_request_origins = [ 'http://####.####.com', /http:\/\/####.*/ ]

将应用程序部署到 Elastic Beanstalk 环境后,我在 Chrome 控制台中出现此错误:

与“ws://####.####.com/cable”的 WebSocket 连接失败:在建立连接之前 WebSocket 已关闭。

我已尝试遵循此线程中的建议,但最终却收到此错误:

WebSocket 连接到“ws://####.####.com/cable”失败:WebSocket 握手期间出错:意外响应代码:404

这是我的.ebextensions/nginx.config文件目前的样子。

任何帮助将不胜感激。

4

1 回答 1

2

原来连接在 Elastic Load Balancer 处被终止。ELB 侦听器设置为 HTTP 并且需要为 TCP。

于 2016-07-07T18:06:56.477 回答