Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿。静态文件对于大多数website是不可或缺的一部分。使用Nginx来处理静态文件也是常见的方式。我们知道,如果用Nginx做服务器前端的反向代理,一个请求进来,nginx先补捉到,然后再根据规则转发给后端的程序处理,或者直接处理返回。因此上面那个例子中,直接访问静态文件的绝对地址,Nginx就直接返回了,并没有调用后端的 user_idcard_page做逻辑限制。为了解决这个问题,nginx提供的 XSendfile功能,简而言之就是用 internal 指令。该指令表示只接受内部的请求,即后端转发过来的请求。后端的视图逻辑中,需要明确的写入X-Accel-Redirect这个headers信息。我用vagrant作了一个虚拟机,用Flask实现了上面的需求,具体代码如下:项目结构nginx的配置 nginx confweb.confFlask 代码app.py简单部署

Python的Flask框架及Nginx实现静态文件访问限制功能

Python的Flask框架及Nginx实现静态文件访问限制功能

Python的Flask框架及Nginx实现静态文件访问限制功能