GNU/Linux >> Linux の 問題 >  >> Linux

ポート 80 で Node.js を実行する場合のベスト プラクティス (Ubuntu / Linode)

安全なユーザーにポート 80 を使用する許可を与える

root ユーザーとしてアプリケーションを実行したくないことを思い出してください。ただし、安全なユーザーにはデフォルトの HTTP ポート (80) を使用する権限がありません。あなたの目標は、訪問者が http://ip:port/ のような使いやすい URL に移動して使用できる Web サイトを公開できるようにすることです。

残念ながら、ルートとしてサインオンしない限り、通常は http://ip:port のような URL を使用する必要があります - ポート番号> 1024.

多くの人がここで行き詰まりますが、解決策は簡単です。いくつかのオプションがありますが、これは私が好きなものです。次のコマンドを入力してください:

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

これで、ポート 80 で実行することを Node アプリケーションに伝えると、エラーは発生しなくなります。

この参照リンクを確認してください


ポート 80

クラウド インスタンスで行うことは、次のコマンドでポート 80 をポート 3000 にリダイレクトすることです:

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

次に、ポート 3000 で Node.js を起動します。ポート 80 へのリクエストは、ポート 3000 にマップされます。

/etc/rc.local も編集する必要があります ファイルを開き、その行から sudo を除いた行を追加します .これにより、マシンの起動時にリダイレクトが追加されます。 sudo は必要ありません /etc/rc.local で そこにあるコマンドは root として実行されるため システムの起動時

ログ

Forever モジュールを使用して、Node.js を起動します。クラッシュした場合は確実に再起動し、コンソール ログをファイルにリダイレクトします。

起動時に起動

ポート リダイレクト用に編集したファイル /etc/rc.local に Node.js 起動スクリプトを追加します。 .これにより、システムの起動時に Node.js 起動スクリプトが実行されます。

デジタル オーシャンとその他の VPS

これは Linode だけでなく、Digital Ocean、AWS EC2、その他の VPS プロバイダーにも当てはまります。ただし、RedHat ベースのシステムでは /etc/rc.local /ect/rc.d/local です .


Linux
  1. Ubuntu20.04でnを使用してNodeJSバージョンを管理する方法

  2. マルチパス入門–UbuntuVMの実行

  3. Linuxでのsudoの8つのベストプラクティス–sudoの推奨事項と禁止事項

  1. Suの実行時に.bash_profileがソースされませんか?

  2. Ubuntu – Cd / dvd / bdが挿入されたときにコマンドを実行しますか?

  3. Ubuntu 18.04 に NodeJ をインストールする方法

  1. Ubuntu20.04にSSL/TLSを使用してVsftpdをインストールします-最良の手順?

  2. Ubuntu 22.04 に NVM と Nginx を使用して Node.js をインストールする方法

  3. NetCat (nc) の実行中に複数のポートを調べる