对网站视频资源的管控-禁止通过视频的url访问视频

一般静态文件的下载是不经过PHP的,直接由web服务器发送到客户端。但有时候需要实现文件下载的权限控制等功能,这时候就需要经由PHP程序来做权限验证。简单粗暴的做法是,在PHP程序里边先验证权限,验证通过后再读取文件内容发送给客户端。这种做法确实可以满足需求,但是很明显的,由PHP来发送静态文件内容远远不如直接由web服务器发送静态文件高效,而且会占用更多的资源。怎样既可以实现动态权限验证,又可以高效的发送静态文件呢?像这种需求肯定不是个例,而且也相当的普遍。于是,便有了 Apache 的mod_xsendfile 模块,以及 nginx的 X-accel。

Apache mod_xsendfile 模块首页:https://tn123.org/mod_xsendfile/在Debian里,直接 apt-get install libapache2-mod-xsendfile 就可以安装这个模块了。

注意在Debian6里,apt仓库里xsendfile
模块的版本是0.9,而 XSendFilePath、XSendFileIgnoreLastModified
以及 XSendFileIgnoreEtag
指令是在0.10版本引进的。所以在0.9版本里使用XSendFilePath指令会出现“Invalid command
‘XSendFilePath‘, perhaps misspelled or defined by a module not included
in the server configuration”的错误,解决办法是使用0.9版引进的 XSendFileAllowAbove
指令,或升级 xsendfile 模块到最新版(建议升级版本)

nginx X-accel 首页:http://wiki.nginx.org/X-accel

nginx不需要安装额外的模块,直接配置就行了。

注意在nginx里,当设置了 X-Accel-Redirect 头之后,nginx会删除掉后端应用自定义的头部(如 X-Abc-Def ),只保留一些特殊的后端应用设置的头部(如 Content-Type、Content-Disposition等),这样就没办法向客户端发送自定义响应头了。为了避免这种情况的发生,需要做一些设置:

location /protected/ {
   internal;
   root /opt/www/files/;
   add_header X-Abc-Def $upstream_http_x_abc_def;
}

注意是 $upstream_http_x_abc_def ,而不是 $upstream_x_abc_def

这样就既能告知 nginx 代为发送静态文件,也能发送自定义 http 响应头了

时间: 2024-10-14 12:55:31

对网站视频资源的管控-禁止通过视频的url访问视频的相关文章

一段完整的批量下载网站视频资源的python爬虫代码(附注解)

# 本程序为学习代码,成功爬取了'梨视频'网站的全部视频文件,并保存在video文件夹 import os import re import requests def getHTMLText(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: print("request failed") url = 'https://www.p

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新 񘞮

原文: http://blog.gqylpy.com/gqy/438 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

NBA视频资源,NBA录像,NBA下载,NBA总决赛,NBA季后赛,NBA视频,NBA资源,NBA比赛回放

相信众多的NBA爱好者们都有一种追求经典的心情,比如那些巨星们的超神之战.由于现有的NBA录像网站,仅仅更新了近期的比赛录像,早期的链接几乎都已经失效了,造成了我们想看一些NBA的经典比赛,却无从查找,不是找不到该场的比赛录像,就是该场的录像已经被删除,或是因版权原因不提供观看,使我们回顾NBA录像的经典很困难.?NBA视频资源 的作者正是想看乔丹时期的NBA录像,然而却找不到那时期的NBA视频资源了,因此开始在各大网站收集有效的NBA录像链接,同时NBA视频资源的作者也想到了,会有很多NBA的

一些技术视频资源

一些技术视频资源 25 MARCH 2014 最近在国外一些网站上找到了一些很有趣的视频资源. USENIX的会议视频. USENIX原名Unix Users Group,在它的网站上能下载到从2008年到现在的所有会议视频https://www.usenix.org/conferences/multimedia ,一般是480p的 .由于我个人比较喜欢读usenix的paper,它比较偏工业界.所以我很喜欢看他们的演讲. Google Developers At Youtube 有每年Goog

苹果cms怎么上传本地视频资源

今天我们来简单分享下苹果cms怎么上传本地视频,采集资源站的资源我们已经熟知了,但是有的伙伴们想要上传自己制作或是录制的视频应该怎么操作呢?这个问题有多种方法,今天我们先简单的说2种方法. 一,上传到自己的服务器 ①第一种呢就是把视频上传到自己的服务器,格式最好是mp4格式.我这里用的是宝塔来举例,其他的呢大同小异,理解了逻辑其他都能操作.首先来到我们的宝塔面板我这里有2个测试站点 我们随便点开一个根目录上传即可. ②红框内就是我刚刚上传的视频文件,我直接上传到网站的跟目录,由此这个视频的链接就

优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部分.其它开源部分:优分享开源浏览器 优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件.由于google vr sdk现在出于初级阶段,所以本软件也不能完美的支持一些VR视频资源的播放,不过随着Google VR的发展,优分享也会与时俱进的支持更多的VR视频资源. 优分享VR安卓

编译速度过慢问题 图片资源过多 视频资源过多导致的编译过慢问题

我的博客地址欢迎阅读和指正: http://www.cnblogs.com/yyxios/ https://github.com/iOSSinger 公司项目其实也不大,几千行代码,但是每次做个小小的改动,都要重新编译,轻则5,6分钟重则十几分钟,原因是里面需要显示3D效果,因此项目里面放了许多图片资源和视频资源,导致每次编译速度都很慢; 解决办法: 在调试阶段下链接电脑本地资源,比如放到桌面某个文件夹里,从而不需要编译,也能看到效果,只是用到的时候才会从本地加载,缺点就是3D效果略有卡顿;然而

视频资源下载方法[download video resources]

笔者做视频时钟分析,需要用到大量特殊的视频,如何获取需要的视频是一个问题? 以下载NBA视频为例: Tools:①腾讯视频软件 (自行下载)  ②批处理文件(下文会给出代码) convert.bat 代码:copy/B *.tdl video.mpg copyto.bat 代码:copy *.mpg F:\video\ 步骤: 1.安装好腾讯视频软件,查看视频缓存路径,如下图所示. 2.找到需要下载的资源,以自己科研实际需要的资源为例. 登录网址:http://www.nba98.com/nba

Nginx禁止直接通过IP地址访问网站

介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机在用户通过IP访问,或通过未设置的域名访问,在server的设置里面添加这一行: 复制代码代码示例: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站时,希望禁止显示任何有效内