RabbitMQ管理页面通过nginx反向代理报错解决

欢迎加入QQ讨论群: 839421316
创建时间不长,请积极讨论

问题说明

在RabbitMQ的管理页面,当查看Queue信息时,出现以下错误。

Not found
The object you clicked on was not found; it may have been deleted on the server.

Nginx配置内容

server {
listen	80;
server_name file.ihayun.com;
location / {
 port_in_redirect on;
 proxy_redirect off;
 proxy_pass http://172.16.0.11:15672/;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header User-Agent $http_user_agent;
 proxy_set_header Host $http_host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
}
}

RabbitMQ配置

[
 {rabbit,
   {loopback_users, []}
  ]},
 {kernel,
  ]},
 {rabbitmq_management,
  [{path_prefix, "/my-prefix"}
  ]},
 {rabbitmq_shovel,
  [{shovels,
    ]}
  ]},
 {rabbitmq_stomp,
  ]},
 {rabbitmq_mqtt,
  ]},
 {rabbitmq_amqp1_0,
  ]},
 {rabbitmq_auth_backend_ldap,
  ]}
].
解决方法
upstream rabbitbackend {
        server 172.16.0.11:15672;
}
server {
listen  80;
server_name my.abc.com; 
location / {
        port_in_redirect on;
        proxy_redirect off;
        proxy_pass http://rabbitbackend;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header User-Agent $http_user_agent;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location ~* /rabbitmq/api/ {
        rewrite ^ $request_uri;
        rewrite ^/rabbitmq/api/(.*) /api/$1 break;
        return 400;
        proxy_pass http://rabbitbackend$uri;
        proxy_buffering                    off;
        proxy_set_header Host              $http_host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

问题原因

由于在RabbitMQ的请求路径中,存在特殊的字符"%2F",Nginx在反向代理时转换失败。因此,需要把"%2F"正常传给RabbitMQ

如果有什么问题,可以加入QQ群进行讨论。QQ群:839421316

谢谢支持。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值