2012-09-17 24 views
11

まず、ec2コンソールのセキュリティグループ設定ではないことがわかります。なぜなら私はApache 80をインストールすることができます。これは80ポートであり、80ポートを通してApacheのWebサイトを訪問することができます。 しかし、私はポート8080(デフォルト)または1023(私はこのポートと思う)より大きいいくつかの値を使用する場合は、tomcatのために動作します。 80(8080に変更)のserver.xmlを変更すると、80ポートを使用しても正常にサービスを開始できますが、80/httpのリッスンはありません。私はそれがいくつかの権限の問題(ルートのみが1023ポート以下のサービスを開始できる)でなければならないことを知っています。しかし、私はそれを行う方法を知らなかった。EC2(Amazon)のLinuxはtomcatにポート80を使用できません

+0

[EC2のLinuxはtomcatにはポート80を使用できませんが、ポート80はApacheには対応しています](http://stackoverflow.com/questions/12464888/linux-in-ec2-cannot-use-port-80) -for-tomcat-but-port-80-is-for-apache) –

答えて

1

Linuxで特権ポートで実行するようにTomcatを設定する一般的な方法は、authbindを使用することです。 UbuntuおよびAmazon Linux hereの詳細な設定手順を見つけることができます。

25

この問題の個人的な選択は、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 
+0

これは正しい答えです。それは、アウトバウンドトラフィックに制限を加えることなく、ポート80を介してトラフィックを8080にリダイレクトするだけです。このようないくつかのiptableスクリプトはセキュリティ上の理由からhttpを出るのをブロックしていますが、それはあなたのサーバーを更新するためにこの日と年齢では非常に困難です。 – chubbsondubs

+0

["Cat in the Cloud"](http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html)の記事にはいくつかの提案があり、2012年現在、 iptablesも同様です。 – amos

2

これまでの方法では、Apache2を仮想ホストを使用してプロキシとして使用し、プロキシをTomcatに使用しました。これは要求を処理し、将来ロードバランシングのために複数のTomcatを使用することに決めた場合、ロードバランサとして使用することもできます。

関連する問題