問題タブ [meteor-up]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - MUP を使用した Meteor アプリケーションを Ubuntu EC2 インスタンスにデプロイする
バージョン/背景
私が読んだことから、Mongo v0.10.33を使用するMeteor-up(mup)のバージョン0.7.6、Meteor 1.0.2.1を使用しています。
ami-3d50120d
Meteor アプリケーションの宛先として、AWS 上の小さな Ubuntu Server 14.04 LTS (HVM)、SSD ボリューム タイプ - EC2 インスタンスを使用しています。
私のドメインはami-3d50120d
インスタンスの Elastic IP を指しています (domain-name
ここではそれを呼び出します)。
次のような出力で、Mongo と Node を正常にインストールmup setup
した新しい場所で実行できます。ami-3d50120d
エラー状態を再現する手順
- 新しいUbuntuインスタンスを作成しました
- ドメインにリンクされている Elastic IP を割り当てました
- 私のmup.jsonファイルを構成しました(以下で詳しく説明します)
- mupセットアップを行いました->すべてが正常にインストールされました
- インスタンスにsshして、
node -v
-> v0.10.33を実行しました - OSX ボックスに戻る
node -v
-> 実行 -> v0.10.32 - MUP デプロイを実行しました -> エラー状態が発生しました
エラー状態
ノート
OSXボックスにノードv0.10.32がインストールされていると思います(およびAmazonインスタンスにノードv0.10.33がインストールされています)が、独自のバージョンのノードがあるため、Meteorバージョン1.2.1のノードバージョンには影響しません。私の知る限りでは。
マップ構成
インスタンスに割り当てられた Elastic IP を指しているmup.json はdomain-name.com
、次のようになります。
amazon-web-services - Meteor を使用した AWS SES
tarang:email-ses
@Akshat によって構築されたAWS SES と連携する Meteor パッケージを作成しようとしています。
私は Meteor @1.* を AWS EC2 インスタンスで実行しています。以下のコードでテストを実行したところ、メールは送信されませんでした。
流星コード
AWS アクセス キー ID とシークレット アクセス キーを設定し、ここで使用します。
メールアドレスとドメインも確認済みです。ここで、確認済みの送信者 SES アドレスから送信していることを確認します。
次に、Meteor メソッドで新しいユーザーを作成し、次のようにメールを送信して登録します (これは、もちろん Accounts.emailTemplates.from なしで meteor.com に展開する場合に機能します)。
質問
email-ses パッケージをセットアップするためのコードは正しいですか?
このパッケージは、Amazon SES API を抽象化して E メールを送信する (そして、ネイティブの Meteor E メール呼び出しを可能にする) と考えました。AWS で SMTP をセットアップする必要はありますか?
javascript - Meteor と /private ディレクトリ
/private
現在、Meteor 1.0.3のディレクトリを使用して、 pdf ドキュメントを保存し、ブラウザに提供しています。
例として、次のようなフォルダー構造があります。
ボタンクリックイベントを持つテンプレートがあります。このイベントでは、Meteor メソッドを 2 回呼び出し、最後にサーバー側の Iron Routergo('render-pdf')
メソッドを呼び出します。これらの Meteor メソッドでは、fs
node.js を使用して次のことを行います。
(1)
/user-name
ディレクトリが存在するかどうかを確認し、存在しない場合は作成します。(2) pdf-file.pdf ファイルを作成する
次に、サーバー側の Iron Routergo('render-pdf')
ルートで、再びfs
node.js を使用して次のことを行います。
(3) 作成した pdf-file.pdf を読み込み、
(4) 最後にブラウザにレンダリングする
問題は手順 (1) で、/user-name
ディレクトリを作成するときに Meteor サーバーが再起動します。手順 (2) で、再び Meteor サーバーが再起動します。
しかし、最も重要なことは、コードを初めて実行したときにディレクトリが存在しない場合 (ステップ (1))、エラーが発生することです。
今度はディレクトリが作成された後、ボタンイベントを再度呼び出すことができ、pdfは正常にレンダリングされます。
エラーは次のようになります。
おそらく、ファイルをレンダリングしようとするポイント ステップ (4) に到達したときに、ファイルがまだ存在していないか、アプリケーションが再起動している可能性があります。次回試してみると、アプリケーションはすでに再起動されており、ファイルが存在します。
/private
ディレクトリは、アプリケーションの実行に影響を与えないファイルを処理する場所を提供するという印象を受けましたか? 私にとってこれは、実行時にアプリケーションを再起動せずに何でも追加できることを意味します。
小さな歴史
最初は、/server
ディレクトリと./folder-name
サブディレクトリを使用しました。これは、アプリケーションが再起動しなかったフォルダーとファイルを追加したときに機能しました。欠点は、優れた Meteor-up パッケージ (mup) を使用して Meteor をデプロイしたときに、*.js
内部のどこかにファイルを追加しない限り、デプロイ バンドルがこれらのファイルを無視したことです。さらに、EC2 インスタンスに「隠し」フォルダー構造を作成した場合、デプロイによってディレクトリが削除されます。
そのため、フォルダーを使用する/private
とこの問題は解決したか、そう思いました。フォルダー構造と「アセット」が展開されます。しかし、このアプローチの欠点は、「資産」を追加すると、再起動するように見えることです -- even though I though this wasn't something that was suppose to happen
.
質問
/private
Meteor アプリケーションを再起動せずに、ディレクトリの下に「アセット」を (ディレクトリとファイルの形式で) 追加するにはどうすればよいですか? これができない場合、アプリケーションを再起動せずにサーバー側のみに「アセット」を追加するにはどうすればよいですか?
ご注意ください
本番環境にデプロイするとき、フォルダー構造の一部をそのままにしておきたいと思います。次に例を示します。
そこで言うべきですが、
ディレクトリは動的にすることができます。/.directory-name
Meteor はフォルダーとその内容を無視します。ただし、これには展開も含まれます。
本当に必要なもの
展開バンドルに含まれるサーバー側のみのフォルダーで、実行時に「もの」を追加すると、アプリケーションが再起動しません...
展開バンドル
/.hidden-folder
に含めるか、実行時にフォルダーに追加するたびにフォルダーを再起動しない ようにする方法のいずれかです。mup
/private
stuff
meteor - Meteor Up でデプロイした後、Ubuntu 14.04.1 で電子メールの送信が機能しなくなった
最近、Meteor アプリにメール送信機能を追加し、メール パッケージとアカウント登録 API の両方を使用してメールを送信しました。先日、開発マシンでこれを徹底的にテストした後、Meteor Up を使用して本番サーバーにデプロイしました。展開したら、メール API が適切に機能していることを簡単に確認し、そのままにしておきました。1 日か 2 日後、いくつかの小さな変更を加え、これらのメール API を Meteor.defer メソッドにラップして、UI を高速化しました。変更をローカルでテストし (すべて問題ありません)、再デプロイしました。また、利用可能な新しいセキュリティ更新プログラムがあるという通知を確認した後、サーバーで apt-get update を実行しました。これを行うと、電子メール システムが機能しなくなります。以前の構成に戻そうとしましたが、まだ機能していません。タイムアウト エラーが発生します。
このタイムアウトの原因について何かアイデアがあるかどうか疑問に思っていました (ブロックされたポート?...どうすればこれを診断できますか?)。私のSMTPポートが開発マシンで機能していることを考えると、それは私のコードの問題ではなく、MUPの展開またはUbuntu構成のいずれかに問題があるようです。私は Ubuntu サーバーの構成にあまり詳しくありません。デバッグの方法に関する提案は大歓迎です!
ssl - meteorを使用したnginxのsslとhttps
私はこのnginx構成を持っています
通常の設定でmupを使用してec2にデプロイします
デプロイされ、サイトにアクセスできますapp.com
しかし、動作しhttps://app.com
ていません
構成ファイルでは、すべてのリクエストがhttps
ここで何が起こっているのかに書き換えられます
- app.com に入るとサイトにアクセスできます。つまり、app.com 広告https://app.comを転送しています。
- nginx が動作していないことを意味するhttps://app.comにアクセスできません
上記の 2 つのシナリオのうち、正しいものはどれですか?
私には選択肢がありません。SSL証明書がインストールされていないことを示しているsslチェッカーで確認しました。
それでは、app.comに入るとアプリが機能するのはなぜですか?
deployment - Meteor: 手動展開
Meteor の手動展開の経験はありますか? フィードバックをお待ちしております。
厳格な IT ポリシーを持つクライアントがいます。また、サードパーティがサーバーにアクセスすることを許可しません。したがって、次のようにします。
- アプリの仕様を説明するフォームに入力します。
- アプリのソース コードとデータベース ダンプの zip を送信します。
- 彼らがサーバーを構成し、アプリをテストするのを待ちます。
- フィードバックを受け取り、修正があれば送り返します。
- 彼らが私たちのアプリをなんとか展開できるように、私たちが持っている神に祈ってください。
基本的に、Meteor プロジェクトをバンドルしてクライアントに送信し、クライアント側で最小限の労力で展開する方法を知りたいです。
これは、標準の LAMP スタックでは非常に簡単なプロセスでした。しかし、最近では物事はそれほど単純ではありません。