JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

如何用nginx反向代理处理rabbitMQ的特殊字符问题?

wys521 2024-09-06 04:18:12 精选教程 30 ℃ 0 评论

概述

最近在弄rabbitmq,计划是内网不用/mq后缀,外网用/mq做后缀,负载用nginx实现,下面简单介绍下实现的过程,以作备忘~


实现方案一

Bash
location /mq/ {
        rewrite ^/mq/(.*)$ /$1 break;
               port_in_redirect on;
               proxy_pass http://MQ服务器:15672/;
               proxy_redirect http:// https://;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           }

以上登录是没问题,但是在访问具体队列时提示对象不存在



实现方案二

考虑到rabbitmq的请求路径中,存在特殊的字符%2F,导致nginx在反向代理时转换失败,如果在看队列的时候就看不了。所以基于上面的方案做了改进:

Bash
upstream rabbitbackend {
        server  MQ服务器:15672;
        }
location ~* /mq/ {
               rewrite ^ $request_uri;
               rewrite ^/mq/(.*) /$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;
             }

访问地址:


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表