Dave O'Dea
Posted on October 16, 2020
I originally posted this article on my own site daveodea.com - stop by and say hi!😀
Because of the nature of how RabbitMQ structures its API endpoints and for other reasons I won't get into here (hence Byte-size), I've previously struggled with getting the RabbitMQ management plugin UI available at a URL route controlled by Nginx.
Hopefully, this will save you the same headaches I endured ...
Of course, you'll want to make sure you have both RabbitMQ and Nginx installed on your system.
Nginx configuration
Let's firstly setup our nginx.conf file:
sudo vim /etc/nginx/nginx.conf
upstream rabbitmq {
least_conn;
server localhost:15672 weight=10 max_fails=3 fail_timeout=30s;
}
Next, let's edit add location blocks for RabbitMQ:
sudo vim /etc/nginx/sites-enabled/default
location /rabbitmq/api/ {
rewrite ^ $request_uri;
rewrite ^/rabbitmq/api/(.*) /api/$1 break;
return 400;
proxy_pass http://rabbitmq$uri;
}
location /rabbitmq {
rewrite ^/rabbitmq$ /rabbitmq/ permanent;
rewrite ^/rabbitmq/(.*)$ /$1 break;
proxy_pass http://rabbitmq;
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;
}
Reload your Nginx config:
nginx -s reload
Ensure you have the RabbitMQ management plugin enabled:
rabbitmq-plugins enable rabbitmq_management
Now, you can head over to https://your-domain.com/rabbitmq/ and the RabbitMQ login screen will be available.
Thank you for reading,️
~ Dave
Credit:
Thanks to lukebakken for inspiration I got from their gist on Github, original here.
Posted on October 16, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
February 8, 2024