What is a reverse proxy? I’ll start with an analogy. A reverse proxy is kind of like your grocery store. You go into the grocery store, because you don’t want to go directly to the farmer to get your veggies. The reverse proxy is the middle-man between certain networks, or where you need it, to connect you with services that are sort of hidden behind the scenes.
We have used a couple different reverse proxies in our datacenter setup. I won’t go into the details of our older software before having a separate proxy setup, but we originally had individual boxes that used NGINX (Pronounced ENGINE-X) with the applications running directly on the same server. We transitioned to a standalone reverse proxy that has a broader scope and proxies cluster-wide, instead of to individual servers. This proxy is NGINX from the Nginx Proxy Manager project on github. Check out their website here.
I had tried using Traefik for just over a year, and we still have some apps running it, but we are moving away from Traefik as it’s a bit more complex and it has a higher latency than NGINX in our server setup. It’s also designed by Google, whom we aren’t big fans of (To be fair, it is still an open source project, so who sponsors it isn’t as big a deal).
A reverse proxy sits near the front of your network to get traffic where it needs to go. When you go to: https://althatech.com there are quite a few things that happen. As we discussed previously the DNS requests go out and the DNS system will get you to the server IP address where the website is. If I have 10 websites, but only one public IP address, then what do I do? Enter the reverse proxy.
My reverse proxy can have all of those hostnames (althatech.com. billybob.com, whatever.com) in it’s configuration and knows where to find the files for the website (In combination with other services like loadbalancing and NAT). He can do this for multiple websites, so that I as a business owner don’t need to pay monthly for tons of static IP addresses. It also simplifies your networking stack and improves security.
For websites and http based traffic the reverse proxy, and specifically the Nginx Proxy Manager project are a great asset to you if you want to start hosting your own data. If you have any questions or want help feel free to hire us to support your project.
Owner, Altha Technology
[…] Docker Swarm allows you to manage a cluster of servers, so more than one computer, all working together. In our system, if one computer goes down then your website automatically moves to another computer that is running. We are still working on this actively to make it more resilient (I’m looking at you reverse proxy…). […]