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

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

对于我正在开发的网站,我的所有静态内容都托管在 S3/Cloudfront 组合上。我查看了很多关于将 Django 应用程序部署到生产中的教程,其中很多都推荐使用 Nginx(反向代理)+ Apache 的组合。这是在假设 Ngnix 将用于提供静态内容,而 Apache 将完成所有繁重工作的情况下提出的。当我没有任何静态内容要提供时,还有其他理由使用反向代理吗?或者在这种情况下,我可以简化服务器设置并只使用 Apache 吗?

答案1

Nginx 也将在您的用例中提供帮助。通常,与任何反向代理一样,它通过两种主要技术帮助更优化地利用服务器资源:

  1. 正如您正确指出的那样,它提供静态内容,从而使重量级的 Web 服务器无需执行此操作。
  2. 但它也解决了“慢速客户端”的问题,即那些使用慢速连接(拨号或移动)的客户端。由于 Apache 生成动态页面的速度非常快,因此 Nginx 会获取该页面,将其存储到临时文件中,并以客户端的速度将其提供给客户端(就像它提供静态内容一样),从而使 Apache 可以处理另一个请求。

相关内容