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