为了控制静态文件下载,

一般方法需要PHP用file_get_contents读取文件,再传给客户端。

节省资源的方法是利用nginx的x-sendfile模块

原理是 nginx 上设置一个特殊资源目录,客户端无法直接读取,需要经过php许可后才能下载。

1、设置nginx

目录 /request/uri/ 被设置为 internal, 所以客户端无法直接访问。

alias 对应的文件所在真实目录,一般这个目录不在公开目录下,也无法访问。

注意要设置生效。

2、访问php

还有一些控制选项,需要提前 X-Accel-Redirect 发送

X-Accel-Limit-Rate: 1024 X-Accel-Buffering: yes|no X-Accel-Charset: utf-8

文档:https://www.nginx.com/resources/wik