問題タブ [pm2]
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.
node.js - Nodejs、PM2、nginx はセキュリティを展開していますか?
サーバー上で nodejs を実行する方法を示すオンラインのガイドがいくつかありますが、セキュリティに関するいくつかの詳細をスキップする傾向があります。これは少し難しい質問で、どこから始めればよいかわかりません。誰かが次の詳細を明確にできるかどうか疑問に思っていました。
まず、私のセットアップ:
管理者でノードを実行するのは悪い考えであるため、sudo 以外のユーザーでノードをローカルにインストールしました。
を使用
PM2
してアプリケーションを実行できますpm2 start app.js
。私の
/li>nginx
構成:
私の懸念は次のとおりです。
(1) APPLICATION - メインapp/
は中に住まなければなり/home/appuser
ませんか?
アプリ ファイルを非 sudo ユーザー ホーム内に置くことには危険がありますか? もしそうなら、私のアプリファイルはどこに置くべきですか?
public/
アプリケーションファイルと同じフォルダーに置くのではなく、別の場所に置くべきかどうか疑問に思っています。config.js
特に、データベース認証の詳細や電子メール認証の詳細などの機密情報を保持しているアプリケーションのソース ファイルが漏洩することは望ましくありません。移動する必要がある場合、どこに
/public
住んでいapp/
ますか?現在の権限
app/
はchown -R appuser:appuser app/
であるため、ユーザーはすべてのファイルを所有しています。アプリケーション フォルダーに設定する必要がある他のアクセス許可はありますか?
(2) PM2 - nodejs とそのモジュールをローカルにインストールしたのでpm2
、サーバーの再起動後に nodejs アプリを安全に再起動するにはどうすればよいですか?
私の理解では、それ
pm2-init.sh
は に存在し、sudo を使用してグローバルに/etc/init.d/
インストールした場合、これは自動的に行われます。pm2
pm2
非 sudo ユーザーを使用してアプリを安全に再起動するにはどうすればよいですか?
(3)NGINX
次のように提供されている場合、どうすれば安全に提供できます
/li>public/
か。nginx
404
私のアプリはルートを処理し、ルートが見つからない場合はスローする必要があります。しかし、誰かがそれを回避して、悪意を持って私のアプリを作成したり、nginx
他のディレクトリを閲覧したりすることは可能ですか?つまり、アプリ ディレクトリの外
または、私のアプリでローカルに
nginx
これが可能な場合、これを防ぐためにまたはnodejsに設定できる追加のセキュリティ対策はありますか?
node.js - pm2 start app.js が 15 回の再起動後に終了する
npm start はアプリを正常に起動しますが、実行すると:
私は得る:
私が得るログで:
ここに私のpackage.jsonがあります:
ノード バージョン: v0.10.38 pm2 バージョン: 0.12.15
これをデバッグするにはどうすればよいですか?なぜ失敗するのかわかりません。他に確認する必要がある場所はありますか?私の app.js ファイル?
sails.js - pm2 でダウンタイムのない本番 Sailsjs アプリ
pm2 と 2 つのインスタンスを使用してクラスター モードで実行されている Sailsjs アプリがあります。2 つのインスタンスが必要な主な理由の 1 つは、アプリ全体を停止することなくアプリを再起動/更新できるようにするためでした。
ただし、1 つのインスタンスの再起動の途中でpm2 restart 4
、サイトを更新すると、サイトがすべて不安定になります (これは専門用語です)。これは、うなり声がそれを行っており、両方のインスタンスで .tmp フォルダーが破壊されているためだと思いますか?
異なるポートで実行されている 2 つの完全なインスタンスを持ち、ロード バランサーとして nginx のようなものを使用する、sailsjs を使用した唯一の実際のアプローチですか、または PM2 で、ダウンタイムやリソースのしゃっくりなしで段階的な再起動を可能にする何かが欠けていますか?
node.js - pm2のIDをリセットするには?
pm2を使用しています。アプリを数回起動した後、ID が増加しました。pm2で全部消してやり直したらidが0からカウントされなくなった。どうすればリセットできますか?
node.js - ドッカーコンテナでpm2リストを作成できません
Node.js と pm2 を使用して Docker イメージをビルドします。コンテナーを次のように開始しました。
次に、次の方法でコンテナー内に入ります。
コンテナーで、次のコマンドを実行します。
そして、ここで立ち往生しました:
Ps : CMD pm2 start app.js
.Dockerfile
node.js - node-uuid はインストールされていますが、require('node-uuid') は失敗します
PM2 ログに、node-uuid をロードしようとする player.js Mongoose モデルの行が失敗していることを示すエラーが表示されます。明確にインストールされており、node_modules フォルダーとその下のすべてがノード アプリを実行しているユーザーによって所有されているため、理由がわかりません。
私はこのエラーに完全に困惑しています...