Rails 5 Ошибка во время рукопожатия WebSocket: неожиданный код ответа: 502 - PullRequest
1 голос
/ 04 февраля 2020

Я использую web-сокет в своем приложении rails: с Rails 5.2.3, ruby 2.4.0p0, моя websocket работает find через http, но у меня возникает следующая ошибка при переключении на https. Ошибка:

Сбой подключения WebSocket к 'wss: //tukaweb.com/cable': Ошибка при рукопожатии WebSocket: Неожиданный код ответа: 502

I попытался изменить конфигурацию в production.rb на

  config.action_cable.url = 'wss://tukaweb.com/cable'
  config.action_cable.allowed_request_origins = [ 'http://tukaweb.com', /http:\/\/tukaweb.*/ ]

и

  config.action_cable.url = [/ws:\/\/*/, /wss:\/\/*/]
  config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/]

, а также добавил метатег действия кабеля:

 <%= action_cable_meta_tag %>

Но ошибка все еще сохраняется Кто-нибудь может предложить правильную конфигурацию, спасибо и почему его работа найти в среде http test bed, но дает ошибку на https с ssl. также я использую Nginx сервер с пассажирским модулем для запуска среды рельсов.

1 Ответ

1 голос
/ 04 февраля 2020

обновил /home/vidur/Downloads/tukaweb/app/assets/javascripts/cable.js до:

//= require action_cable
//= require_self
//= require_tree ./channels

(function() {
  this.App || (this.App = {});

  App.cable =  ActionCable.createConsumer("/cable");

}).call(this);

Production.rb до:

  config.action_cable.url = "/cable"
  config.action_cable.allowed_request_origins = [ 'http://52.35.24.20','http://tukaweb.com', 'https://tukaweb.com' ]

route.rb:

  mount ActionCable.server => '/cable'

cable.yml до:

development:
  adapter: redis
  url: redis://localhost:6379/1

test:
  adapter: async

production:
  adapter: redis
  url: redis://localhost:6379/1

обновил виртуальный хост до:

location /cable {
    passenger_app_group_name tukaweb_action_cable;
    passenger_force_max_concurrent_requests_per_process 0;
}
...