rabbitmq从外部连接

 dreamingsue 发布于 2023-01-18 10:27

我正在尝试设置rabbitmq它可以通过nginx从外部(从非localhost)访问.

nginx的-rabbitmq.conf:

pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

rabbitmq.conf:

pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

默认情况下,guest用户只能从localhost进行交互,因此我们需要创建具有所需权限的其他用户,如下所示:

pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials) pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

但是,当我尝试通过pika连接到rabbitmq时,我得到了ConnectionClosed异常

pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

- [引发ConnectionClosed异常] -

如果我使用相同的参数但将主机更改为localhost并将端口更改为5672,那么我连接ok: pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

我在GCE Web控制台上打开了端口5672,通过nginx进行通信:nginx access.log文件显示

[30/Apr/2014:22:59:41 +0000]"AMQP\x00\x00\x09\x01"400 172" - "" - "" - "

其中显示了400状态代码响应(错误请求).

因此,通过外观,请求在通过nginx时失败,但在我们直接请求rabbitmq时有效.

有没有其他人有类似的问题/让rabbitmq通过nginx为外部用户工作?是否有一个rabbitmq日志文件,我可以看到每个请求并帮助进一步排除故障?

1 个回答
  • 您已将nginx配置为HTTP反向代理,但Rabbitmq配置为使用AMQP协议(请参阅https://www.rabbitmq.com/configure.html上的tcp_listeners说明)

    为了让nginx做任何有意义的事情,你需要重新配置rabbitmq以使用HTTP - 例如http://www.rabbitmq.com/web-stomp.html.

    当然,这可能会产生连锁反应,因为任何通过AMQP访问rabbitmq的客户端都必须重新配置/重新设计才能使用HTTP.

    2023-01-18 10:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有