使用nginx对视频、音频、图片等静态资源网址,加token签权

目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权

如:

http://192.168.1.22/123.mp3

http://192.168.1.22/123.m3u8

http://192.168.1.22/123.flv

对这些资源想增加token进行验证,如 :

http://192.168.1.22/123.flv?token=123

 后端接口对token进行验证,通过即可以访问,不通过 跳转到其它 连接

1、下载nginx,这里是用window版本

 由于需要用到lua脚本,所以下载第三方插件版本的

 OpenResty  https://openresty.org/en/

 解压后

修改配置文件 

conf/nginx.conf

在http 中增加以下配置

    server {listen       8018;server_name  localhost;location /proxyprd {#访问验证token接口 并提交传参rewrite ^/180m7s/(.*) /$1 break;proxy_pass http://125.7.23.10:8011/LuaVideoCheck/luaVideoCheck;}	location /180m7s {#访问地址域名:端口/180m7sdefault_type text/plain;	access_by_lua '			local	myIP = ngx.req.get_headers()["X-Real-IP"]if myIP == nil thenmyIP = ngx.req.get_headers()["x_forwarded_for"]			 elseend	if myIP == nil thenmyIP = ngx.var.remote_addrendlocal tokenstr= ""local args = ngx.req.get_uri_args()for key, val in pairs(args) doif key == "token" thentokenstr=val			endendlocal urlstr = ngx.var.urilocal pos = string.find (urlstr,".st")		local posseghik = string.find (urlstr,"seghik") local posm3u8 = string.find (urlstr,".m3u8")if pos and posseghik then	if  not posm3u8 then		ngx.exec("@180m7sUrl")returnendendlocal res = ngx.location.capture("/proxyprd", {args={token=tokenstr, ip=myIP,url=urlstr,sysname="proxyprd"}})   #如果接口luaVideoCheck验证token通过返回1,转发原始视频流内容if res.body=="1" thenngx.exec("@180m7sUrl")returnendif res.body=="-1" then#如果接口luaVideoCheck验证token不通过返回-1,转发空内容returnendreturn	 	        
';		}location @180m7sUrl{#视频原始访问域名端口#local urlstr = ngx.var.uri#local urlstr=ngx.req.get_headers()["User-Agent"]rewrite /180m7s/(.*) /$1 break;proxy_pass  http://59.5.36.80:6060;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

在你的接口http://xxx.xxx.xx...xx/LuaVideoCheck/luaVideoCheck 中添加验证程序

 public int luaVideoCheck(string ip = "", string token = "", string url = "", string sysname = ""){if(token=="123"){return 1;}else{return -1;}}

保存配置

运行程序

测试步骤:

1、请求:http://nginx服务器的ip:8018/147m7s/123.flv?token=123

2、接口自动验证token:http://xxx.xxx.xx...xx/LuaVideoCheck/luaVideoCheck

3、验证通过,内容请求会自动转发到 http://59.5.36.80:6060/123.flv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248700.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年新提出的算法:(凤头豪猪优化器)冠豪猪优化算法Crested Porcupine Optimizer(附Matlab代码)

本次介绍一种新的自然启发式元启发式算法——凤头豪猪优化器(Crested Porcupine Optimizer,CPO)。该成果于2024年1月发表在中科院1区SCI top期刊Knowledge-Based Systems(IF 8.8)上。 1、简介 受到凤头豪猪(CP)各种…

将 Quartz.NET 调度框架与 Stimulsoft Reports 结合使用

今天,我们将深入探讨软件开发的一种现代趋势 - 流程自动化,这自然是 Stimulsoft 产品中报表处理的一部分。在本文中,我们将讨论如何使用第三方调度程序自动执行与 Web 项目中的报告相关的任务。作为对报告执行操作的示例,我们考虑…

Hive 行列转换

行列转换 列转行 使用 lateral view explode(array|map) 或 lateral view inline(array_struct) 可以将列转换为行。 单列转多行,降维(单列数组或键值对) 示例1:explode(array(…)) select ..., A from T lateral view exp…

博云科技与中科可控全面合作,探索前沿金融科技新机遇

2024年1月26日,博云科技与中科可控在昆山高新区成功举办合作签约仪式。昆山市委常委、昆山高新区党工委书记孙道寻、中科可控董事长聂华、博云科技董事长花磊等领导出席了本次签约仪式。 中科可控将利用其在先进计算和智造领域的优势,为博云科技提供有关…

Redis系列-数据结构篇

数据结构 string&#xff08;字符串&#xff09; redis的字符串是动态字符串&#xff0c;类似于ArrayList&#xff0c;采用预分配冗余空间的方式减少内存的频繁分配。 struct SDS<T>{ T capacity; T len; byte flags; byte[] content; } 当字符串比较短时&#xff0c…

多线程代码案例之单例模式

作者简介&#xff1a; zoro-1&#xff0c;目前大二&#xff0c;正在学习Java&#xff0c;数据结构&#xff0c;javaee等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 多线程代码案例之单例模式 单例…

linux_ftp客户端如何带有密码下载文件

目录 简介linux 使用密码登录ftplinux 客户端指定密码下来文件下载成功截图 简介 当我们使用linux 的ftp 客户端想从服务端下载一个文件的时候 又不会指定密码 应该如何处理呢 linux 使用密码登录ftp # 语法 lftp -u {ftp账号},{ftp密码} ftp://{服务器IP}:{端口}# 实例使用…

蓝桥杯 第 1 场 小白入门赛

目录 1.蘑菇炸弹 2.构造数字 3.小蓝的金牌梦 4.合并石子加强版 5.简单的LIS问题 6.期望次数 1.蘑菇炸弹 我们直接依照题目 在中间位置的数进行模拟即可 void solve(){cin>>n;vector<int> a(n1);for(int i1;i<n;i) cin>>a[i];int ans0;for(int i2;i…

02-opencv简单实例效果和基本介绍-上

机器视觉概述 机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素…

Consul容器服务自动发现和更新

目录 前瞻 什么是服务注册与发现 什么是consul Docker-consul实现过程 Docker-consul集群部署 实验准备 实验流程 前瞻 什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保障高可用性&#xff0c;也不考虑服…

MyBatis常见面试题汇总

说一下MyBatis执行流程&#xff1f; MyBatis是一款优秀的基于Java的持久层框架&#xff0c;它内部封装了JDBC&#xff0c;使开发者只需要关注SQL语句本身&#xff0c;而不需要花费精力去处理加载驱动、创建连接等的过程&#xff0c;MyBatis的执行流程如下&#xff1a; 加载配…

华为radius认证

组网需求 如图1所示&#xff0c;用户同处于huawei域&#xff0c;Router作为目的网络接入服务器。用户需要通过服务器的远端认证才能通过Router访问目的网络。在Router上的远端认证方式如下&#xff1a; Router对接入用户先用RADIUS服务器进行认证&#xff0c;如果认证没有响应…

第七篇:node中间件详解

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 &#x1f4d8; 引言&#xff1a; &#…

解读4篇混合类型文件Polyglot相关的论文

0. 引入 Polyglot文件指的是混合类型文件&#xff0c;关于混合类型文件的基础&#xff0c;请参考文末给出的第一个链接&#xff08;参考1&#xff09;。 1. Toward the Detection of Polyglot Files 1.1 主题 这篇2022年的论文&#xff0c;提出了Polyglot文件的检测方法。虽…

MySQL 联合索引

文章目录 1.简介2.最左匹配3.最左匹配原理4.如何建立联合索引?5.覆盖索引参考文献 1.简介 联合索引指建立在多个列上的索引。 MySQL 可以创建联合索引&#xff08;即多列上的索引&#xff09;。一个索引最多可以包含 16 列。 联合索引可以测试包含索引中所有列的查询&#…

十一、常用API——练习

常用API——练习 练习1 键盘录入&#xff1a;练习2 算法水题&#xff1a;练习3 算法水题&#xff1a;练习4 算法水题&#xff1a;练习5 算法水题&#xff1a; 练习1 键盘录入&#xff1a; 键盘录入一些1~100之间的整数&#xff0c;并添加到集合中。 直到集合中所有数据和超过2…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包&#xff1a;官网 或者点击下载&#xff1a;postgresql-12.12-1-windows-x64.exe Tip&#xff1a;此时若报错&#xff1a;There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

【Tomcat与网络5】再论Tomcat的工作过程与两种经典的设计模式

前面两篇&#xff0c;我们重点分析了Tomcat的容器和连接器的基本设计&#xff0c;今天我们来看一下两个机构如何在service的调度下进行协同工作的。 目录 1.模板模式与Tomcat的重用性设计 2.观察者模式与Tomcat可扩展性设计 1.模板模式与Tomcat的重用性设计 首先&#xff0…

SELINUX导致的网络服务问题解决

第一&#xff1a;开启相关服务&#xff0c;监控SELINUX 相关服务&#xff1a;setroubleshoot,auditd,大多数都是以se开头的 如果没有此服务&#xff0c;先yum下&#xff0c;然后查看状态 这里关于auditd说明&#xff0c;centos7不可以用systemctl重启auditd服务&#xff0c;…

大象机器人六轴协作机械臂myCobot 320 进行手势识别

引言 我是一名专注于机器学习和机器人技术自由者。我的热情始于大学期间的人工智能课程&#xff0c;这促使我探索人机交互的新方法。尤其对于机械臂的操作&#xff0c;我一直想要简化其复杂性&#xff0c;使之更加直观和易于使用。 这个项目的灵感源自于我对创新技术的热爱以及…