我的 ubuntu aws 服务器上有一个在 docker 上运行的rabbitmq,我从本地电脑应用程序连接到它。在 nginx 上设置 https 域后,它崩溃了(我不确定这是否是原因)。
我尝试通过上述命令后telnet ip port
显示Connection closed by foreign host.
Docker 日志进行连接:
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我使用弹性ip连接rabbit,而不是域名。但无论如何它都应该有效。
答案1
问题在于协议。就我而言,当我阻止传入的 http 请求时,http://ip 是无效的请求 url,应将其更改为ip
不使用 http 协议。