7

Playフレームワークを使用して構築した小さなサイトがあり、AmazonRDSインスタンスに対してEC2サーバーで実行しようとしています。RDSインスタンスに対して自分のマシンでアプリを実行でき、すべてが正常に機能します。しかし、EC2サーバーにデプロイすると、次のエラーが発生します。

サーバーから正常に受信された最後のパケットは、1,282,977,731,085ミリ秒前でした。サーバーに正常に送信された最後のパケットは0ミリ秒前です。
        play.db.DBPlugin.onApplicationStart(DBPlugin.java:87)で
        play.Play.start(Play.java:381)で
        play.Play.init(Play.java:247)で
        play.server.Server.main(Server.java:85)で
原因:java.net.ConnectException:接続が拒否されました

私が最初に考えたのは、ある種のセキュリティ設定でしたが、同じユーザー名とパスワードで同じRDSインスタンスに接続している同じEC2サーバー上のTomcatでSpringベースのアプリケーションを実行していて、問題なく動作します。Playアプリのみに接続の問題があります。

なぜこれが起こっているのかについての説明や、それを修正する方法についてのアイデアを思い付くことができないようです。

誰かが前にこのようなものを見ましたか?

4

4 に答える 4

2

問題はapplication.confファイルにあります。次のようにローカルDBを指定する場合:

db=mysql:root:pass@db

そしてあなたのprodDBはこのようになります:

%prod.db.url=jdbc:mysql://<your-db-ip>:3306/db
%prod.db.user=db_user
%prod.db.pass=db_pass

Play!のため、本番環境で実行しようとすると、このエラーが発生します。prodパラメータはそのパラメータを個別にオーバーライドしないため、実際にはdb = mysql:root:pass@dbパラメータを使用して接続しようとしています。これを修正するには、ローカルと製品で同じ方法でDBに接続してください。これは私のために働いた:

db.url=jdbc:mysql://localhost:3306/db
db.user=root
db.pass=pass

%prod.db.url=jdbc:mysql://<your-db-ip>:3306/db
%prod.db.user=db_user
%prod.db.pass=db_pass
于 2011-06-15T21:48:10.237 に答える
0

これらのフレームワーク(または一般的にはJava)のどちらについても何も知りませんが、これらのAmazonサービスの両方についてある程度の経験があります。これらのフレームワークが異なるプロトコルを使用して、または異なるポートで通信する可能性はありますか?もしそうなら、それはまだセキュリティの問題である可能性があります。

これが可能である場合は、[EC2]> [セキュリティグループ]に移動し、次の3行がない場合は、次の行を追加してみてください。

All | icmp | -1 |    -1 | default group
All | tcp  |  0 | 65535 | default group
All | udp  |  0 | 65535 | default group

(「デフォルトグループ」はデフォルト名であり、私が私の名前と呼んでいますが、グループ名は異なる場合があります。いずれの場合も、「0.0.0.0/0」ではなくグループ名であることを確認してください)

また、開く必要のある特定のプロトコル/ポートを知っている場合は、明らかにそれらも追加します。

于 2011-01-25T15:53:48.557 に答える
0

エラーはさまざまな原因で発生する可能性があり、現在見ているものよりも低いレベルのプロトコルスタックで発生しているようです。送信サーバーでパケットアナライザー(wiresharkなど)を実行して、何が起こっているのかを把握することをお勧めします。たぶん、パケットはそこに到達していませんか?たぶんあなたのクライアントはそれが置かれている異なる環境のために何かを混乱させていますか?パケットスニファは、接続障害の謎を解明するために非常に貴重です。

サーバーがヘッドレスである場合、またはグラフィカルセッションを転送できない場合は、*nixシステムのtcpdumpなどのコマンドラインツールをいつでも使用できます。

于 2011-04-21T19:19:00.030 に答える
0

私はここで同じ質問をしました

AmazonRDSとElasticBeanstalkの接続

RDSのデフォルトのセキュリティグループに「elasticbeanstalk-default」セキュリティグループを追加すると、おそらく問題は修正されます。

于 2011-06-14T06:11:59.300 に答える