rabbtimq设置前缀

因为客户有时候只开放指定端口,只能将端口以目录的形式进行反向代理,修改tabbitmq的config文件,往下找到path_prefix相关字段,修改后重启rabbitmq生效

vim /etc/rabbitmq/rabbitmq.config
 {rabbitmq_management,
   [{path_prefix, "/mq"}]},         #此处我修改前缀为/mq

可能会存在的问题:

Rabbitmq Management 在使用某些功能时 比如增加Virtual host服务端返回 405 Method not allowed

正常登录 Rabbitmq Management 后,调用某些 url 包含 %2f 的接口

原因:

正常访问该地址:https://xxx.xxx.com/mq/ 时能正常跳转,但是 rabbitmq management 的 api url 出现了 %2f 字符,这些字符会在经过 nginx 被转换为/

使用以下nginx配置解决这问题

nginx配置:

    location  /mq/ {
  # proxy_pass http://xx.xx.xx.xx:15672/mq;
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Upgrade $http_upgrade;
    proxy_set_header        Connection "upgrade";

        if ($request_uri ~* "/mq/(.*)"){
                        proxy_pass http://xx.xx.xx.xx:15672/mq/$1;
                        break;
        }
    proxy_pass http://xx.xx.xx.xx:15672/mq;
}