Ruby on rails SSL上的Websocket(WSS)“;未能升级";弹性豆茎(ALB、Rails、Nginx、Actioncable)

Ruby on rails SSL上的Websocket(WSS)“;未能升级";弹性豆茎(ALB、Rails、Nginx、Actioncable),ruby-on-rails,amazon-web-services,nginx,websocket,amazon-elastic-beanstalk,Ruby On Rails,Amazon Web Services,Nginx,Websocket,Amazon Elastic Beanstalk,当我尝试连接到部署在ALB后面的EB上的websocket时,发现404升级失败。大多数问题都与此相关,因此没有答案或不清楚 Real domain被替换为w/example.com /var/app/current/log/production.log中出错(行缩短) 设置 弹性豆茎+ALB(含红宝石的美洲狮2.4) HTTPS/WSS/SSL 轨道5 config/production.rb: config.action_cable.url = "wss://usetreasure.co

当我尝试连接到部署在ALB后面的EB上的websocket时,发现404升级失败。大多数问题都与此相关,因此没有答案或不清楚

Real domain被替换为w/example.com

/var/app/current/log/production.log中出错(行缩短)

设置

  • 弹性豆茎+ALB(含红宝石的美洲狮2.4)
  • HTTPS/WSS/SSL
  • 轨道5
config/production.rb:

config.action_cable.url = "wss://usetreasure.com/cable"
config.action_cable.allowed_request_origins = [ '/https:\/\/*/', '/http:\/\/*/' ]
在EB实例/etc/nginx/conf.d/websockets.conf上

upstream puma {
  server unix://var/run/puma/my_app.sock;
}

server {
  listen 443;
  server_name example.com;

  location /cable {
    proxy_http_version 1.1;
    proxy_pass http://puma;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}
ALB在HTTP/HTTPS上设置为443和80(但在安全组上显示TCP?)

config.action_cable.url = "wss://usetreasure.com/cable"
config.action_cable.allowed_request_origins = [ '/https:\/\/*/', '/http:\/\/*/' ]
upstream puma {
  server unix://var/run/puma/my_app.sock;
}

server {
  listen 443;
  server_name example.com;

  location /cable {
    proxy_http_version 1.1;
    proxy_pass http://puma;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}