メニューを閉じる

テクノデジタルグループ

メニューを開く

2016.06.24

プログラミング

Rails5 ActionCable をUnicorn+Nginxで動かす

GTラボ坂東です。

Rails5 rc1でActionCableを使ってます。

開発環境は、vagrant+Pumaで動かしています。OK。
ただ検証と本番環境は、unicorn+Nginxを使いたいと思ってて。
動かすときにハマって解決したので共有します。

現象

ws://ほげほげ.jp/cable が 404 だってjavascriptエラー。

 

対応策

nginx.confに /cable に関して追加。

upstream unicorn_amazarashi_rails {
  server unix:/home/nginx/staging/amazarashi/tmp/sockets/unicorn.sock
  fail_timeout=0;
}

server {
  listen 80;
  server_name ほげほげ.jp;

  try_files $uri @unicorn_amazarashi_rails;

  location @unicorn_amazarashi_rails {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://unicorn_amazarashi_rails;
}

   location /cable {
     proxy_pass http://unicorn_amazarashi_rails/cable;
     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;
   }
}

ここ参考にした。
http://stackoverflow.com/questions/36259421/how-to-configure-actioncable-with-nginx-and-unicorn-in-production

でもActionCableはマルチスレッドなんでunicornじゃなくPumaで動かしてねという記述も多いので、運用してたらなにかボロがでるかもしれません。

おわり。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事