Не удалось обновить до WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION:, HTTP_UPGRADE:) - PullRequest
0 голосов
/ 13 июля 2020

У меня есть приложение Rails с nginx и пассажиром, и я выполнил инструкции здесь , но продолжаю получать Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION:, HTTP_UPGRADE :)

Я добавил блок ниже, как предлагают документы

location /cable {
    passenger_app_group_name app_name_action_cable;
    passenger_force_max_concurrent_requests_per_process 0;
}

, но ошибка все еще существует, а также я пробовал все решения здесь, в потоке наложения, но не повезло, не помогло?

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

  development: *redis

  test: *redis

  production:
   adapter: redis
   url: <%= Rails.application.credentials[Rails.env.to_sym][:redis_url] %>

1 Ответ

1 голос
/ 14 июля 2020

Может быть вам нужна какая-то конфигурация в вашей nginx конфигурации? Я действительно не работал с пассажиром, но в своем проекте я использую его как:

  upstream socket_server {
    server <your_ip>:<your_port>;
  }

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

Я использую anycable gem с сервером сокетов golang, и он может отличаться от passenger и по умолчанию actioncable, но, возможно, мой ответ поможет избавиться от вашей проблемы

(Кроме того, я настоятельно рекомендую перейти на anycable, потому что он потребляет меньше всего ресурсов сервера :))

...