Как я могу подключиться к веб-сокету actioncable на EC2? - PullRequest
0 голосов
/ 07 июня 2019

Я несколько раз пытался подключиться к серверу веб-сокетов, выполненному с помощью actionable, и развернуть его на Amazon EC2.

К сожалению, я снова и снова сталкиваюсь с этой проблемой, когда перехожу на страницу, которая позволяет мне отображать сообщения, отправленные в websocket.

Javascript не может подключиться к серверу, и я не понимаю, почему.

Я несколько раз пытался изменить конфигурацию nginx, а также изменить входящие правила EC2.

Я также несколько раз менял параметры "config.action_cable.url" и "config.action_cable.allowed_request_origins".

ошибка, отображаемая навигатором, связана с тем, что при тестировании с клиентом: «Соединение WebSocket с« ws: //52.47.133.83: 3001 / test / cable »не удалось: Ошибка при установлении соединения: net :: ERR_CONNECTION_REFUSED «

и веб-сокет отключен: операция не может быть завершена. Отказ в соединении на клиенте IOS.

nginx.conf

upstream app {
 server unix:///home/ubuntu/happer-api2/shared/sockets/puma.sock;
}

upstream thin {
  server 127.0.0.1:3000;
}

server {
listen 80;
server_name localhost;

try_files $uri/index.html $uri @app;

location /{
  root /home/ubuntu/happer-api/public;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_redirect off;

  if (-f $request_filename/index.html) {
    rewrite (.*) $1/index.html break;
  }
  if (-f $request_filename.html) {
    rewrite (.*) $1.html break;
  }
  if (!-f $request_filename) {
    proxy_pass http://thin;
    break;
  }
}

location /test {
    root /home/ubuntu/happer-api2/public;
    proxy_pass http://app;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    index index.html index.htm;
}

location /cable {
    proxy_pass http://unix:/home/ubuntu/happer-api2/shared/sockets/puma.sock;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $host:$server_port;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400;
}

location ~* ^/assets/ {
    root /home/ubuntu/happer-api2/public;
    expires 1y;
    add_header Cache-Control public;

    add_header Last-Modified "";
    add_header ETag "";
    break;
}

error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}

development.rb

Rails.application.configure do

config.cache_classes = false

config.eager_load = false

config.consider_all_requests_local = true

if Rails.root.join('tmp', 'caching-dev.txt').exist?
  config.action_controller.perform_caching = true

  config.cache_store = :memory_store
  config.public_file_server.headers = {
  'Cache-Control' => "public, max-age=#{2.days.to_i}"
  }
else
  config.action_controller.perform_caching = false

  config.cache_store = :null_store
end

config.active_storage.service = :local

config.action_mailer.raise_delivery_errors = false

config.action_mailer.perform_caching = false

config.active_support.deprecation = :log

config.active_record.migration_error = :page_load

config.active_record.verbose_query_logs = true

config.assets.debug = false

config.assets.quiet = true

config.action_cable.url = 'ws://52.47.133.83:3001/test/cable'
config.action_cable.allowed_request_origins = ["http://52.47.133.83"]


config.file_watcher = ActiveSupport::EventedFileUpdateChecker
end

1 Ответ

0 голосов
/ 08 июня 2019

Ваши группы безопасности или NACL блокируют доступ. Вы видите это в сообщении об ошибке.

ERR_CONNECTION_REFUSED

Вам нужно будет открыть необходимые порты, поскольку по умолчанию для безопасности AWS нет доступа.

...