1

nodejs は次の方法でポート 80 で実行できることを認識しています。

  • apache/nginx でプロキシを設定する
  • iptables ルールを使用したポート リダイレクトの設定
  • アプリ内でポート 80 で高速リッスンを行う

最初のオプションは最も簡単ではなく、必要以上の依存関係が必要です。2 つ目は動作する可能性がありますが、私の OpenVZ VPS では動作しません (そして、カスタム Linux カーネルをコンパイルできません)。

いくつかのサブドメインも処理する必要があり、このstackoverflowの回答を読んだ後、3番目の解決策を試しました. それは完全に機能し、非常に簡単に実行できます。

nodejs を 80 ポートで直接実行しているときに、セキュリティ上の問題があるのではないかと思っていました。これらを修正/発見するにはどうすればよいですか?

プロセスを処理するために pm2 を使用したかったのですが、root として実行されない可能性があります( Goodbye node-forever hello pm2 )。

4

1 に答える 1

2

最初のオプションは最も簡単ではなく、必要以上の依存関係が必要です

フレームワーク Web サーバーの前に http サーバーを使用する理由を確認してください。実際にこの方法を使用する必要がある多くの正当な理由があります。

iptables ルールを使用したポート リダイレクトの設定

これはおそらく、ノード プロセスがポート 80 でリッスンするように直接設定するよりも優れていますが、このタイプの構成が運用環境で使用されているのを見たことがありません。

アプリ内でポート 80 で高速リッスンを行う

上記のリンクされた回答で概説されている利点が得られないため、これは機能的には悪い選択ですが、厳密なセキュリティの観点から、覚えておくべき重要なことは、ノードプロセスを root として実行してはならないということです。これは恐ろしいことです。セキュリティの問題。unix の規則であるため、ポート 80 にバインドするには root である必要がありますが、そのポートにバインドした直後に権限の低いユーザーに変更する必要があります。

于 2013-10-16T17:52:58.867 に答える