安全なユーザーにポート 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
です .