在没有提供静态内容的网站(Django)上使用反向代理的原因是什么?

对于我正在开发的网站,我所有的静态内容都是在S3 / Cloudfront的组合外托pipe的。 我一直在寻找很多关于将Django应用程序部署到生产环境的教程,其中很多人都推荐使用Nginx(反向代理)+ Apache。 这是在Ngnix将被用于提供静态内容的假设下陈述的,而Apache将完成所有繁重的工作。 当没有任何静态内容可用时,是否有任何其他原因需要使用反向代理? 或者在这种情况下,我可以简化我的服务器设置,只使用Apache?

Nginx也会帮助你的用例。 通常,像任何反向代理一样,通过两种主要技术来更好地利用服务器资源是有帮助的:

  1. 正如您正确地指出的那样,它提供静态内容,从而使重量级Web服务器免于这样做。
  2. 但它也解决了“慢客户端”的问题,即那些使用慢连接(拨号或移动)的客户端。 由于Apache生成的dynamic页面非常快,Nginx获取它,存储到临时文件并以客户端的速度将其提供给客户端(非常类似于提供静态内容),从而释放了Apache服务器的其他请求。