Configure your Madsonic reverse proxy with nginx on Linux for convenient remote access. For ultimate convenience with your reverse proxy for people with dynamic IP addresses, use a free dynamic DNS service like AfraidDNS (guide for automating), DuckDNS or No-IP.
After completing this Madsonic reverse proxy tutorial you will be able to access Madsonic using your custom DNS address like http://htpcguides.crabdance.com/madsonic instead of http://IP:4040. This Madsonic reverse proxy how-to was tested on Debian and Ubuntu but the nginx virtual host should work on any Linux system (CentOS, Red Hat, Fedora, Arch etc). I will assume you followed the install madsonic guide.
Configure Madsonic Reverse Proxy nginx Linux
This Madsonic reverse proxy tutorials involves two steps, enabling Madsonic's custom web root and adding the custom location into your nginx reverse proxy virtual host.
Enable Madsonic Reverse Proxy
First we need to enable the custom web root for Madsonic by editing its parameters configuration file
sudo nano /etc/default/madsonic
Add --context-path
thanks to this post and choose your location (here /madsonic
) that you want to use for the reverse proxy
MADSONIC_ARGS="--context-path=/madsonic --init-memory=256 --max-memory=512"
Ctrl+X, Y and Enter to save
Restart the Madsonic service now
sudo service madsonic restart
Now you can test the new location with http://ip.address:4040/madsonic
Install nginx
sudo apt-get update
sudo apt-get install nginx -y
Create the reverse proxy nginx vhost if you don't have one already
sudo nano /etc/nginx/sites-available/reverse
Add this whole block if the vhost didn't exist, htpcguides.crabdance.com is a sample free dynamic DNS address from Afraid (guide)
If you already have a reverse proxy then just add the location block
server {
listen 80;
server_name htpcguides.crabdance.com 192.168.40.105;
location /madsonic {
proxy_pass http://127.0.0.1:4040;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Enable the nginx reverse proxy vhost if you haven't already
sudo ln -s /etc/nginx/sites-available/reverse /etc/nginx/sites-enabled/reverse
Disable default site
sudo unlink /etc/nginx/sites-enabled/default
Test the nginx configuration
sudo nginx -t
If all was successful then reload nginx
sudo service nginx reload
Now you can go to the local IP address http://ip.address/madsonic
If you want to enable https nginx reverse proxy see this guide and authentication with brute force protection with this guide.