11

AWS EC2(マイクロ)インスタンスにMeteor(フレームワーク)をインストールし、指示に従い、テストプロジェクトを作成した後、meteorそのディレクトリで実行すると、期待どおりの結果が得られました

[[[[[ /var/www/html/meteortest ]]]]]

Running on: http://localhost:3000/

しかし、ブラウザでサーバーのローカルホストに移動して、HelloWorldサンプルプロジェクトを表示することはできません。流星を次のようなもので動作させる方法はありますか?

http://mydomain.com/meteortest/

また

http://mydomain.com/meteortest:3000
4

4 に答える 4

11

MeteorがROOTURLを設定する方法は、ROOT_URLと呼ばれる環境変数を使用することです。

http://docs.meteor.com/#meteor_absoluteurl

したがって、次のようにMeteorインスタンスを実行できます。ROOT_URL= "http://mydomain.com/" meteor --port 80

ただし、me​​teorインスタンスをフォルダー(http://mydomain.com/meteortestなど)から提供する場合は、nginxを使用してポートを転送する必要があります(Tyrの例を参照)が、次の行を置き換えます。

location / {

と:

location /meteortest {

ROOT_URLを適切に変更します。それでも外部からドメインにアクセスできない場合は、EC2のセキュリティグループを適切に設定していない可能性があります。ポート80を開く必要があります。これを行う方法の詳細については、http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-network-security.htmlを参照してください。

于 2012-12-05T20:29:55.217 に答える
7

ドメインにポート3000をプロキシするようにnginxを設定できます。何かのようなもの:

server {
  listen 80;
  server_name meteortest.mydomain.com;
  access_log /var/log/nginx/meteortest.access.log;
  error_log /var/log/nginx/tmeteortest.error.log;
  location / {
    proxy_pass http://localhost:3000;
    include /etc/nginx/proxy_params;
  }
}

詳細については、 http://wiki.nginx.org/HttpProxyModuleを参照してください。

ただし、ポート3000でmeteorを実行することは、開発環境です。本番環境で使用する場合は、「meteor bundle」を実行してから、生成されたtarball内のREADMEに従ってください。

于 2012-12-04T05:32:32.070 に答える
4

問題は、ポート3000がAmazonのファイアウォールによってブロックされている可能性があることだと思います。あなたはそれを開くことを検討するか、Tyrの解決策を試すか、または単に流星を実行してみることができます

meteor --port 80

これを行うには、root権限(つまりsudo)が必要になる場合があります。

于 2012-12-05T00:44:25.727 に答える
1

ポート80で直接実行するには、root権限が必要です。これは、Webサーバーをrootとして実行したくない場合です。rootとして起動し、通常のユーザーにデエスカレートすることは可能ですが、実際には理想的ではありません。プログラミングのバグにより、privのエスカレーションを解除するのを忘れてしまい、そこからエラーが発生することはありません。

多くの場合、特にAWSシングルコアのt1またはt2インスタンスタイプで実行している場合は、ロードバランサーを実行して複数のコアを使用する必要はありません。したがって、必要に応じてスケールアウトします。私がた中で最も良いアドバイスは、Linuxカーネルの機能を使用してポート転送を行い、ポート80をポート3000にマッピングすることです。

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp \
                          --dport 80 -j REDIRECT --to-port 3000

素晴らしく、簡単で、他に何もすることはありません-そして、リクエストの処理に余分なプロセスが含まれないと同時に、非常に効率的です。

于 2015-03-11T21:39:43.677 に答える