环境:

前端请求 -> nginx -> docker container(rabbitmq)

问题:

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

405 Method not allowed

nginx 配置文件

location /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_pass http://rabbitmq:15672/;
}

原因:

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

解决:

1. 更改 nginx 源码 (自行百度)

2. 修改 nginx 配置文件

location /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;
    if ($request_uri ~* "/mq/(.*)"){
            proxy_pass http://rabbitmq:15672/$1;
            break;
    }
    proxy_pass http://rabbitmq:15672/;
}

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    3140 引用 • 3905 回帖 • 654 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    29 引用 • 57 回帖 • 664 关注
  • 消息队列
    13 引用 • 5 回帖
  • Q&A

    提问之前请先看一下这篇文章 《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    549 引用 • 3227 回帖 • 602 关注
感谢    关注    收藏    赞同    反对    举报    分享