ポート 80、443 をバインドするために、非ルートとして systemd 経由でサービスを起動します

ポート 80、443 をバインドするために、非ルートとして systemd 経由でサービスを起動します

私は、Ubuntu 18.04 ヘッドレス サーバーで、root として tomcat を実行しています。apache や nginx と同様に、systemd を使用して非 root としてサービスを開始できます。root のみがマスター プロセスを開始してポート 80 と 443 をバインドします。そのため、tomcat には apache や nginx と同じ開始プロセスを使用します。tomcat (スーパーユーザーなし) としてユーザーとグループを追加し、tomcat.service を作成した後、どのような構成も必要ですか?

誰かが私を助けてくれたらとても感謝します。

黒ひげ

答え1

ほとんどのサービスは、デフォルトでポート 1024 以上に構成されています。それにはいくつかの理由があります...

あなたが集中しようとしている方法は可能ですが、将来的にいくつかの手順が必要になる可能性があります (少なくともしばらくの間は、変更を行うためにルート アクセスが必要です)... ただし、それが間違っているとは言えません ;)。

代替ソリューションに対して、私に反対票を投じないでください (質問に対する直接の回答ではないため)。サービスをデフォルトの 1024 を超えるポートに維持し、リバース プロキシ (haproxy、nginx、apache http など、使い慣れたもの) を設定して、80 および/または 443 で接続を受け入れ、トラフィックを条件付き (SNI) または無条件でアプリケーションのデフォルト ポートにプロキシするのはどうでしょうか。副作用として、ホスト上のより多くのサービス間で 80/443 を「共有」できるようになります。

関連情報