【问题标题】:Why are static files served separately in webservers?为什么静态文件在网络服务器中单独提供?
【发布时间】:2014-11-24 04:23:03
【问题描述】:
似乎大多数 Web 服务器(Apache、Nginx、Lighthttpd)与 html 文件分开提供静态文件(不同的配置)。这是为什么呢?
我正在尝试使用 Apache 部署我的 Django 应用程序,到目前为止的部署非常简单。在开发过程中,Django 服务器提供静态文件,而我无需费心对其进行配置。为什么在真实的网络服务器中会有所不同?
【问题讨论】:
标签:
django
apache
file
nginx
static
【解决方案1】:
这是一个性能问题。
在生产设置中,您不希望通过 django 提供静态内容。通过 django 提供静态内容涉及大量开销(加载静态文件、处理 python 字节码、传递 WSGI 等),这对于静态内容是完全不必要的。
Web 服务器本身在提供静态内容方面非常快速和高效,因此通常没有理由在请求中涉及 django/python。
对于没有大量负载的小型网站,您可以让 django 提供静态内容(您需要将 django 配置为使用 DEBUG=False 提供静态内容),它相对无害,但不会是'正确的方法'。