私のUbuntu AWSサーバーのDockerでRabbitMQを実行しており、ローカルPCアプリケーションから接続します。 nginxでhttpsドメインを設定した後に競合が発生しました(これが原因であるかどうかはわかりません)。
telnet ip port
Dockerログを表示するために上記のコマンドを介してConnection closed by foreign host.
接続しようとしました。
2020-10-02 17:20:57.873 [info] <0.546.0> Resetting node maintenance status
2020-10-02 17:31:23.071 [info] <0.1670.0> accepting AMQP connection <0.1670.0> (84.54.87.17:58935 -> private_ip:5672)
2020-10-02 17:31:23.071 [error] <0.1670.0> closing AMQP connection <0.1670.0> (84.54.87.17:58935 -> private_ip:5672):
{handshake_timeout,handshake}
興味深いことに、Telnet経由でRabbit_managementプラグインに接続すると、同じエラーが発生します。ただし、ブラウザからRabbit_managementにアクセスできます。
AWS境界ルールとufwポートが開いています。
私のアプリケーション(rabbitmqクライアントの場合はPythonとaio_pika lib)を実行すると、次のエラーが発生します。
Could not get addresses to use: [Errno -2] Name or service not known (http)
この問題をどのように解決しますか?
PS 私はドメイン名ではなく、Elastic IPを使用してウサギを接続します。しかし、とにかく動作するはずです。
答え1
問題はプロトコルです。私の場合、受信したhttpリクエストをブロックしたときにhttp:// ipが誤ったリクエストURLであるため、ip
httpプロトコルを無効にする必要があります。