12

まず、ec2コンソールでのセキュリティグループの設定ではないことを確認したいだけです。障害80ポートによるapacheをセットアップでき、80ポートを介してapacheWebサイトにアクセスできるためです。しかし、Tomcatの場合、ポート8080(デフォルト)または1023より大きい値(このポートだと思います)を使用すると機能します。しかし、server.xmlを変更する(8080を80に変更する)と、80ポートを使用すると機能しなくなり、サービスを正常に開始できますが、80/httpをリッスンしません。私はそれがいくつかの特権の問題であるべきだと知っています(ルートだけが1023ポートの下でサービスを開始することができます)。しかし、私はそれを行う方法を知りませんでした。

4

3 に答える 3

30

この問題に対する私の個人的な選択は、iptablesすべてのトラフィックをポート80からTomcatが実行されている上位ポート(たとえば8080)にリダイレクトするために使用することです。

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
于 2012-09-18T09:52:03.600 に答える
2

以前これを行った方法は、仮想ホストを使用するプロキシとしてApache2を使用し、Tomcatにプロキシすることでした。これはリクエストを処理し、将来、負荷分散に複数のTomcatを使用することにした場合は、ロードバランサーとしても使用できます。

于 2012-09-18T11:48:07.223 に答える
1

Linuxの特権ポートで実行するようにTomcatを構成する一般的な方法は、authbindを使用することです。

以下は、Ubuntu16.04でのTomcat7のセットアップ手順です。

まず、authbindがインストールされていることを確認します。

sudo apt-get install authbind

この行を編集/etc/default/tomcat7してコメントを外します。

AUTHBIND=yes

ポート80のバインド許可ファイルを作成します。

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

httpsも使用している場合は、ポート443に対して上記と同じようにします。

于 2012-09-17T20:32:49.937 に答える