4

この質問が以前に尋ねられた場合は申し訳ありません。

Amazon インスタンス (Ubuntu Server 12.04.1 LTS) があり、Tomcat バージョン (Apache Tomcat/6.0.36) がインストールされています。ポート 80 では期待どおりに動作しますが、ポート 8080 では動作しません (動作しないということは、「Web Application Manager に接続できません」という意味です)。

  • セキュリティ グループの構成では、http* 用にポート 8080 が開かれています
22 (SSH) 0.0.0.0/0 削除
80 (HTTP) 0.0.0.0/0 削除
8080 (HTTP*) 0.0.0.0/0 削除
  • jdk と jre の両方がインストールされていますが、Tomcat がポート 8080 で実行されている場合に jdk が必要な理由がわかりません。
  • 私はTomcatをIPV4アドレスにバインドするように設定しました
<コネクタ ポート="8080" プロトコル="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" アドレス="0.0.0.0"/>

server.xml で追加

JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
echo $JAVA_OPTS

setenv.shへ

netstat -ln を実行すると、

アクティブなインターネット接続 (サーバーのみ)
Proto Recv-Q Send-Q ローカル アドレス 外部アドレス 状態      
tcp 0 0 0.0.0.0:22 0.0.0.0:* 聞く     
tcp 0 0 127.0.0.1:8005 0.0.0.0:* 聞く     
tcp 0 0 0.0.0.0:8009 0.0.0.0:* 聞く     
tcp 0 0 0.0.0.0:8080 0.0.0.0:* 聞く     
tcp6 0 0 :::22 :::* 聞く     
udp 0 0 0.0.0.0:68 0.0.0.0:*                          
アクティブな UNIX ドメイン ソケット (サーバーのみ)
Proto RefCnt フラグ タイプ 状態 I ノード パス
unix 2 [ACC] ストリームリスニング 5886 @/com/ubuntu/upstart
unix 2 [ACC] ストリーム リスニング 7285 /var/run/dbus/system_bus_socket
unix 2 [ACC] SEQPACKET LISTENING 6077 /run/udev/control
unix 2 [ACC] ストリーム リスニング 7397 /var/run/acpid.socket

ランニングwget http://localhost:8080は私に与えます

--2013-04-11 11:20:40--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7446 (7.3K) [text/html]
Saving to: `index.html'

100%[=====================================================================================================================================================================>] 7,446       --.-K/s   in 0s      

2013-04-11 11:20:40 (294 MB/s) - `index.html' saved [7446/7446]

それで、私は何かを見逃しましたか?

ありがとう!!

4

3 に答える 3

5

AWS コンソールにログインし、セキュリティ グループに移動します。

  1. HTTP (80) がある場合は削除します。
  2. カスタム TCP ルールを選択し、ポートを「8080」と入力します
  3. ルールの適用をクリックします。

DNS名を追加:8080

今すぐ動作するはずです。

于 2013-12-31T10:36:22.857 に答える
0

Amazon EC2 インスタンスのセキュリティ設定または ELB のセキュリティ設定を確認してください (使用している場合)。私の最善の推測は、8080が公開されていないことです

于 2013-04-12T17:07:56.903 に答える
0

...私はこの正確な問題を自分で解決するために取り組んでいます。

あなたの質問の一部は、ポート 80 での HTTP とポート 8080 へのアクセスを許可するセキュリティ グループを正しく構成してサーバーに適用したことを意味すると解釈します。(私が使用しているセキュリティ グループ マネージャーのバージョンは、あなたが使用しているバージョンとは少し異なって動作すると思います。)

ポート 80 を開くルールを適用すると、ポート 80 で内部と外部の両方から応答を取得できます。

一方、ポート 8080 を開くルールを追加しましたが、そこからの応答が得られません。(ホスト自体では、私の wget(1) テストはあなたのテストと同じように機能しました。lynx(1) を使用したサーバーのテストも機能しました。)

解決策のいくつかのヒントは、ルールで HTTP をポートに関連付ける必要があることを暗示しているようですが、EC2 ダッシュボードのコンフィギュレーターでは、アプリケーション プロトコルをルールに関連付けることができません。

表示されるのは、ポート、プロトコル (この場合は TCP)、および送信元アドレス範囲だけです。

ローカルのファイアウォールがポート 8080 をブロックしていないと確信しています。

---v

于 2014-04-02T01:55:42.443 に答える