7

Meteor Up (または Modulus のような他の Meteor アプリのデプロイ プロセス) が、Meteor アプリケーションをコピーして tmux セッションを開始し、サーバー上でアプリケーションを起動するだけの場合と比べて、何か凝ったことをするかどうか、少し興味がありmeteorます。よろしくお願いします!

4

4 に答える 4

12

Meteor UpModulusは、node.js と Mongodb を実行するだけのようです。アプリを実稼働用にパッケージ化した後、アプリを実行しますmeteor build。これにより、おそらくアプリのパフォーマンスが向上します。

tmuxまたはscreenセッションで meteor を実行することは可能です。私はmeteor run --settings settings.json --production設定を渡すために使用し、コードなどを縮小するプロダクション モードも使用します。Nginx のようなプロキシ フォワーダーを使用して、リクエストをポート 80 (http) および 443 (https) に転送することもできます。

参考までに、私のNginx構成は次のとおりです。

server {
  listen 80;
  server_name example.com www.example.com;
  return 301 https://example.com$request_uri;
}

server {
  listen 443 ssl;
  server_name www.example.com;

  ssl_certificate /etc/ssl/private/example.com.unified.crt;
  ssl_certificate_key /etc/ssl/private/example.com.ssl.key;

  return 301 https://example.com$request_uri;
}

server {
  listen 443 ssl;
  server_name example.com;

  ssl_certificate /etc/ssl/private/example.com.unified.crt;
  ssl_certificate_key /etc/ssl/private/example.com.ssl.key;



  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

この方法を使用すると、すべてが meteor コンテナー内に含まれ、変更などを監視する meteor の利点が得られます。ただし、サーバーに余分なオーバーヘッドが発生する場合があります。両方の方法を十分にテストしていないため、正確にどの程度かはわかりません。

この方法を使用して私が見つけた唯一の問題は、再起動時にすべてを自動化するのは簡単ではないことです。たとえば、tmux を自動的に実行してから meteor を起動するのとは対照的に、Node.js ForeverPM2などの特別に設計されたツールを使用するとサーバーが自動的に起動します。再起動されます。そのため、サーバーに手動でログインして実行する必要がありますmeteortmuxまたはscreenを使用してこれを行う簡単な方法を見つけたら、お知らせください。

編集:

/etc/rc.localファイルに次の行を追加して、システムの起動時に Meteor を起動することができました。

sudo -H -u ubuntu -i /usr/bin/tmux new-session -d '/home/ubuntu/Sites/meteorapp/run_meteorapp.sh'

このコマンドはrun_meteorapp.sh、システムの起動後に tmux セッション内でシェル スクリプトを実行します。run_meteorapp.sh には次のものがあります。

#!/usr/bin/env bash
(cd /home/ubuntu/Sites/meteorapp && exec meteor run --settings settings.json --production)
于 2015-10-23T01:21:06.900 に答える
3

Mupx はさらに多くのことを行います。ドッカーを利用しています。これは開発版ですが、Meteor を 1.2 にアップデートした後、mup よりも信頼性が高いことがわかりました。

詳細は github リポジトリにあります: https://github.com/arunoda/meteor-up/tree/mupx

于 2015-12-15T18:23:27.973 に答える
1

私は mupx を使用してデジタル オーシャンに展開しています。mup.json ファイルをセットアップすると、アプリをデプロイできるだけでなく、CLI を使用してサーバー上のコードを簡単に更新することもできます。他にも役立つコマンドがいくつかあります。

mupx reconfig- 環境変数を使用してアプリを再構成します
mupx stop- アプリを停止します
mupx start- ...
mupx restart- ...
mupx logs [-f --tail=100]- これにより、展開エラーが発生したときに非常に役立つログが取得されます。

確かにアプリの更新が簡単になり、とても満足しています。

Mupx はMeteorD (Meteor Apps の Docker ランタイム) を使用します。Docker を使用 するため、次のコマンドで ssh 経由で MongoDB シェルにアクセスすると非常に便利です。

docker exec -it mongodb mongo <appName>

試してみます!

于 2016-06-13T01:01:17.663 に答える