It is a web server that interceipt requests coming from the outside world (clients). Requests coming from clinets are forwarded to a server and then reverse proxy returns the server’s response to the client.
Benefits
- Works with SSL termination so you can encrypt and decrypt your requests and responses
- Useful for not only distributed systems but even single servers as it helps to add another layer between your server and outside world and can add some security features.
- Allow you to hide information about your backend servers, backlist IPs or limit the amount of connections per client (rate limiting).
- Because clients only see the address of reverse proxy, you can scale your servers easily and you don’t have to worry about addresses etc.
- It can compress responses
- You can cache sessions and common responses on your reverse proxy, same with the static content such as HTML, CSS, JS, videos and photos.
Disadvantages
- Single reverse proxy becomes a single point of failure
- Adding reverse proxy adds complexity