我正在尝试在运行 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
文件目前的样子。
任何帮助将不胜感激。