欢迎加入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
谢谢支持。