无法连接到Elastic Beanstalk上的ActionCable

时间:2016-07-06 23:32:11

标签: nginx elastic-beanstalk puma ruby-on-rails-5 actioncable

我正在尝试在运行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://####.#####cable'的WebSocket连接失败:在建立连接之前WebSocket已关闭。

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

  

与'ws://####.#####cable'的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:404

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

原来在Elastic Load Balancer中连接被杀死了。 ELB Listeners设置为HTTP,需要为TCP。