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