Skip to content

What is a reverse proxy?

New Course Coming Soon:

Get Really Good at Git

Find out what is a reverse proxy and what is it useful for!

When we talk about servers, it’s common to hear the term “reverse proxy”.

In this post I want to explain what is a reverse proxy, and what it’s useful for.

Let’s first talk about what’s a proxy. A proxy is a server that accepts connections from clients, which actively configured the proxy server on their machines, in their network settings.

When a client makes a connection to a server, the requests always pass through that proxy server.

This practice has several uses. Companies and organizations can set up proxy servers to filter connections, provide more security, and log traffic. Without using the proxy, clients can’t reach the outside network. Proxy servers are also useful to provide privacy and avoid network restrictions imposed by countries governments.

A reverse proxy on the other hand is set up by the server. It’s completely transparent to clients, they don’t know this middleman exists, but it does a very useful job on the servers, filtering requests and sending them to the appropriate service that handles them.

It’s common to use Nginx as a reverse proxy, and have services written for example in Node.js listening on internal ports, unaccessible from the outside.

Nginx in this case serves as the main request handler, and sends the appropriate requests, for example linking special subfolders or URLs to specific services.

We can have 2 different Node.js apps doing 2 completely different things, and the user does not need to know about that.

Beside this routing functionality, which is what us developers will mostly use it for, reverse proxies are also great to filter and protect from attacks serving as a firewall, to introduce caching, to configure SSL, to handle load balancing, A/B testing, and much more.

Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!

Here is how can I help you: