Nodeで80番ポートをlistenするサーバの構築方法
こんにちは、@9ensanです。
NodeでWebサーバを構築する時にhttpモジュールからhttp.Serverクラスのインスタンスを生成してlistenで指定ポートを待ち受けます。
そこで、以下のようにlistenポート番号に80を指定して実行すると、
これを対応する方法について解説します。
このエラーが発生する理由は、wikipediaの「ポート番号」の説明で、以下のように解説されている事が原因です。
UNIX系のOSでは、0~1023番のポートを使用するには、通常、root権限が必要で、予約ポートとも呼ばれる。
ようするに、root権限を持つユーザーで実行しないといけないという事になります。
ですが、root権限を保持するユーザーで実行することは、セキリティ上危険が高くなります。
で、どうするかというと、root権限で実行した後に、プロセスのオーナーを変更する事で対処します。
実際のコードが以下になります。
これで、実行したserverのプロセスを、rootからuidが80のユーザーに切り替えます。
80番でlistenするので、実行はrootで行う必要があります。
ですが、無理に80番で実行しなくてもnginxやapacheなどでリバースプロキシをたてる方が普通なんだと思います。
.
関連する記事:
- さくらのVPSでのユーザーの作成
- さくらのVPSでsshdのポート変更
- sshでのrootログインを禁止する
- AndroidのzxingでNoClassDefFoundErrorが出た場合の対処
- さくらのVPSにOS再インストール
コメント 0