3

私は、以下で構成されるリアルタイムWebアプリを作成しました。

  1. Webページを提供するためのレール(ポート80でリッスン)
  2. リアルタイムロジックを処理するNodejs(ポート8888をリッスン)

そのため、Railsアプリが提供する特定のページで、JSはsocket.ioを使用してnodejsインスタンスへの接続を確立し、リアルタイムのhttpプッシュを可能にします。

現在、NodejsはRailsデータベースを更新するだけでRailsと通信します。(私はこれがゲットーであることを知っていますが、それは機能します)。

展開のオプションは何ですか?

  1. 以前にherokuにシンプルなWebアプリをデプロイしたことがありますが、そのシンプルさが本当に気に入っています。
  2. 同様の機能を備えたWebアプリもデプロイしました(ただし、django + nodejsで構成されています)。HAProxyを使用してリバースプロキシを実行し、マシン上の正しいプロセスへのトラフィックの方向を処理しました。ただし、代わりにこれをVPSサーバーに展開しました。

注:醜さはおそらく周りを回るでしょう:

  • 私は一般的なデータベースに依存しています
  • これらのプロセスは異なるポートでリッスンしています
4

2 に答える 2

1

この正確な問題がありました。それらを個別の Heroku アプリケーションにデプロイしましたが、同じコード ベース内に保持しました。http://techtime.getharvest.com/blog/deploying-multiple-heroku-apps-from-a-single-repoに、その方法が概説されています。

  1. ビルドパックを手動で設定する
  2. ステップ 3 で再利用できる構成変数を設定します。
  3. Profile が使用するカスタム Web スクリプトを作成する

bin/web のカスタム スクリプト

#!/bin/bash

if [ "$RAILS_DEPLOYMENT" == "true" ]; then
  bundle exec rails server -p $PORT
else
  node node/index.js
fi

そしてProcfile:

web: bin/web
于 2013-08-14T13:47:44.643 に答える
0

これら 2 つのアプリケーションを別のサブドメインで個別の Heroku アプリケーションとして設定し、両方をポート 80 に配置することを検討します。それらの間の通信は共有データベースを介して行われるため、同じマシンやデータセンターに存在する必要はありません。Socket.io はすべてのブラウザでクロス ドメイン リクエストをサポートしているため、問題は発生しません。

于 2012-03-26T20:52:48.320 に答える