4

Meteor は複数の仮想ホストをどのように処理できますか?

www.Some-Client-Domain.com --> www.Our-CName-URL.com --> Meteor アプリ。

同じサイト/アプリを提供する Meteor アプリが必要ですが、要求された元の URL (Some-Client-Domain.com) に固有のデータが必要です。

現在のプロトタイプでは、Rails の前に NGINX があり、これを行うにはいくつかの方法があります。たとえば、多数の仮想ホストを定義するために NGINX を DB に接続するなどです。新しいクライアントがサインアップすると、DB を更新できるため、NGINX はそれ以上の NGINX 構成なしでその仮想ホストをすぐに認識できるため、これはうまく機能します。

これはMeteorでどのように達成されますか?

ありがとう!

4

1 に答える 1

5

さて、今のところ SSL を無視する (または後で自分で SSL を理解したい) 場合は、以下のガイドが機能するはずです。

基本的な考え方

..ベースURLに応じて、異なるデータベース(mongo、通常のケース)で同じアプリケーションの複数のインスタンスを生成することです。

仮想ホストには次の設定を使用します。

  • サイト #1 :www.example1.com
    • メテオポート:3000
    • MongoDB エンドポイント/URL:mongodb://localhost:27017/example1
  • サイト #2 :www.example2.com
    • メテオポート:3001
    • MongoDB エンドポイント/URL:mongodb://localhost:27017/example2

meteorインスタンスの準備

  1. foreman経由でインストールrubygems

  2. foreman Procfilemeteor プロジェクト ディレクトリにファイルを作成します。上記のデータを使用する (箇条書きは含めないでください:D):

    • web1: ROOT_URL=http://www.example1.com/ PORT=3000 MONGO_URL=mongodb://localhost:27017/example1 meteor
    • web2: ROOT_URL=http://www.example.com/ PORT=3001 MONGO_URL=mongodb://localhost:27017/example2 meteor
  3. meteor bundle-または-バージョンを使用する場合:

    • web1: ROOT_URL=http://www.example1.com/ PORT=3000 MONGO_URL=mongodb://localhost:27017/example1 node bundle/main.js
    • web2: ROOT_URL=http://www.example2.com/ PORT=3001 MONGO_URL=mongodb://localhost:27017/example2 node bundle/main.js
  4. その後、同じディレクトリで直接実行できますforeman start(最後に a を追加し&てバックグラウンドに送信します)。または、次の方法でサービス/アップスタート スクリプトとしてインストールすることもできますforeman export(これは、他の Linux ディストリビューションでは異なる場合があります。Foreman のドキュメントを参照してください: http://ddollar.github.io/foreman/ ):

    • sudo foreman export --app meteors --user <meteor files owner> upstart /etc/init

nginx の準備

これ以降、nginx の構成は非常に簡単になります。

server {
  listen 80;

  server_name www.example1.com example1.com; 

  location / {
    proxy_pass        http://localhost:3000;
    proxy_set_header  X-Real-IP  $remote_addr;
  }
}


server {
  listen 80;

  server_name www.example2.com example2.com; 

  location / {
    proxy_pass        http://localhost:3001;
    proxy_set_header  X-Real-IP  $remote_addr;
  }
}

代わりにすでに SilkJS を使用しているとのことですが、これがうまくいくかどうか教えてください。解決策に関心のある他の人のために、ここに残しておきます。

于 2013-05-16T02:45:37.110 に答える