X-Sendfile
……或者lighty的隐藏秘密。X-Sendfile 是一个重要但却鲜为人知的功能。是时候聚焦它,看看你为什么会想使用它了。X-Sendfile 是一个特殊的头部选项,你可以在任何 FastCGI 后端中设置它,以告知 lighty 忽略响应内容,并将其替换为 X-Sendfile 头部中指定的文件。乍听之下似乎并不引人注目,但如果你在一些用例中思考这个想法,就会明白为什么这是一个好主意:“你正在使用基于应用程序的认证,然后才授权访问服务器上的文件。由于你不希望非授权用户获取文件,你必须将它们放置在一个文档根目录(document-root)无法访问的文件夹中。在你的应用程序中,你正在将文件(比如每个200Mb)流式传输到服务器,然后服务器再将其转发给客户端。”但等等:你基本上是在发送一个大型静态文件。那是 lighty 的工作。那是它最擅长的事情。X-Sendfile 正是为此而生。你告诉 lighty 将静态文件作为响应发送。来自后端的所有响应头都会被转发,只添加了 Content-Length。结果,你的整个应用程序将占用更少的内存,速度会快好几倍,并且你将花费更少的时间来优化你的应用程序。要使用它,你需要加载 mod_fastcgi 模块并在 fastcgi.server 配置中设置 "allow-x-sendfile" 选项。默认情况下,X-Sendfile 是禁用的,因为它允许发送 Web 服务器有权访问的任何文件。简而言之:只在受控环境中使用它。* "mod_fastcgi 文档"://lighttpd.ac.cn/documentation/fastcgi.html * "如何防止盗链"://trac.lighttpd.net/trac/wiki/HowToFightDeepLinking