概述
最近在弄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方面的内容,感兴趣的朋友可以关注下~
本文暂时没有评论,来添加一个吧(●'◡'●)