For a website I'm developing all my static content is hosted offsite on a combination of S3/Cloudfront. I've been looking over a lot of tutorials for deploying a Django app into production and a lot of them recommend a combination of Nginx (reverse proxy) + Apache. This is stated under the assumption that Ngnix will be used for serving static contents and Apache will do all the heavy lifting. Are there any other reasons to have a reverse proxy when I don't have any static contents to serve? Or in this case could I simplify my server setup and just use Apache?
Nginx will help in your use case as well. Generally, like any reverse proxy, it helps to utilize server resources more optimally with two major techniques: