Why do application server documentations always recommend using a reverse-proxy like Nginx? Take a random app server like Gunicorn or a built in server for NPM, what's the rationale behind using Nginx in front of them? Is this merely to handle load? Also if the application already runs behind a cloud load balancer like AWS ELB, would I still need a reverse proxy?
P.S. I understand the role of a reverse proxy for SSL termination and the CPU costs associated with it. But why would anyone install Nginx on the same machine as Gunicorn and put it behind Amazon EBS is something I still cannot fathom.