hamayuzinの日記

エンジニアとかデータサイエンティストとかやってます。あの時 あれやってたな的な備忘録にできれば。

【Rails/action_cable】action_cableをnginx+unicornで動かす

action cableを本番のnginx uninorn下で動かく設定のメモ 今回はAWSのEC2とLBを使う

前提

昔からあるLoad Balancer(現在はCLB)では動かないので 諦めて、Application Load Balancer(ALB)を使う

また、AWS上でredisの設定もしておくこと

nginx

location /cable {
     proxy_pass http://hogehoge;
     proxy_http_version 1.1;
     proxy_set_header Upgrade websocket;
     proxy_set_header Connection Upgrade;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }

cable.yml

production:
  adapter: redis
  url: redis:/hogehoge.cache.amazonaws.com:6379

config/environment/production.rb

config.action_cable.allowed_request_origins = [ 'http://hogehoge.com' ]
config.action_cable.url = "ws://hogehoge.com/cable/"