0

現在、Meteor Up を使用して Digital Ocean にデプロイしています。mup.json で MONGO_URL を指定しない場合、Web サイトの実行中にコマンド ラインから値を取得できますか? つまり、サイトをシャットダウンしたくありませんか?

app ディレクトリに移動して を実行するmeteor mongo --urlと、次のエラーが表示されます。

mongo: Meteor isn't running a local MongoDB server.

This command only works while Meteor is running your application
locally. Start your application first. (This error will also occur if
you asked Meteor to use a different MongoDB server with $MONGO_URL when
you ran your application.)

If you're trying to connect to the database of an app you deployed
with 'meteor deploy', specify your site's name with this command.

アプリ ディレクトリからアプリを実行しても、ローカルホストの MONGO_URL のみが表示されます。デプロイされたアプリの MONGO_URL が必要です。

いくつかの回答で示唆されているように、同様の質問も見ました。サーバー上で他のプログラムを実行せずに MONGO_URL を取得することは「不可能」であることに同意しません。ここで物理法則に逆らっているわけではありません。基本的に、それにアクセスする方法があるはずです。誰もそれを理解していないからといって、それが不可能だというわけではありません。

4

2 に答える 2

1

meteor mongo --urlURL を返す必要があります。

app ディレクトリで別のシェルを開いて、そのコマンドを実行してみてください。

于 2014-10-26T10:48:25.650 に答える
0

Meteor Upは、コマンド ライン インターフェイスではなくアプリをmeteor build実行できるように、アプリをプロダクション モードでパッケージ化します。とりわけ、これはリモートサーバーでは機能しないことを意味します(少なくともデフォルトでは機能しません)。したがって、あなたが本当に探しているのは、自分自身にリモートでアクセスする方法です。nodemeteormeteor foomongo

私は最近、AWS EC2 インスタンスで mongo をセットアップし、ここで学んだ教訓をいくつかリストしました: https://stackoverflow.com/a/28846703/2669596 . その方法の詳細は Digital Ocean とは異なりますが、mongo 自体をインストールしたら、次の点に注意する必要があります。

  • Public IP/DNS Address : サーバーにデプロイできるので、これはおそらく問題ありません。
  • ポート セキュリティ ルール: 少なくとも IP アドレスからの TCP アクセス用にポート 27017 が開いていることを確認する必要があります。MongoDB には、セットアップ可能な http インターフェースもあります。それを使用する場合は、28017 も開く必要があります。
  • /etc/mongod.conf (Linux フレーバーによってファイルの場所が異なる場合があります):
    • コメントport=27017を外して、デフォルトのポートがあることを確認します (これは実際には必要ないと思いますが、気分が良くなり、デフォルトのポートを変更する場所がわかったのは良いことです...)。
    • bind_ip=127.0.0.1外部インターフェイス (リモート接続など) をリッスンするには、コメント アウトします。
    • httpinterface=truehttp インターフェースを使用する場合は、コメントを外してください。
    • mongod経由でホストを再起動する必要がある場合がありますsudo service mongod restart。ダウンタイムが発生しない場合は問題ですが、構成ファイルを変更した場合の回避方法はわかりません。
  • ユーザーの作成:データベースにリモートでアクセスするには、管理者および/またはユーザーを作成する必要があります。

すべての作業が完了すると、ローカル マシンからデータベースにアクセスできるようになります (クライアントmongoがローカルにインストールされている場合 mongo server.url.com:27017/mup-app-name -u username -p ) 。は、データベースにアクセスするために作成したユーザーであり、コマンドの実行後にそのユーザーのパスワードの入力を求められます (または、パスワードによっては、同じ行の後に入力することもできます)。server.url.commup-app-nameappNamemup.jsonusername-p

nginxリモートサーバーでリバースプロキシを設定することでこれを行う方法もあるかもしれませ127.0.0.1:27017んが、私はそれをやったことがなく、それは私が推測しているだけです.

于 2015-05-11T21:58:30.363 に答える