使用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
相关文章:
使用nginx对视频、音频、图片等静态资源网址,加token签权
目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权 如: http://192…...
[每周一更]-(第86期):NLP-实战操作-文本分类
NLP文本分类的应用场景 医疗领域 - 病历自动摘要: 应用: 利用NLP技术从医疗文档中自动生成病历摘要,以帮助医生更快速地了解患者的状况。 法律领域 - 法律文件分类: 应用: 使用文本分类技术自动分类法律文件…...
【Springcloud篇】学习笔记五(十章):Gateway网关
第十章_Gateway新一代网关 1.Gateway简介 1.1官网 上一代zuul 1.X:https://github.com/Netflix/zuul/wiki 当前gateway:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.2是什么 SpringCloud …...
Linux开发工具
前言:哈喽小伙伴们,经过前边的学习我们已经掌握了Linux的基本指令和权限,相信大家学完这些之后都会对Linux有一个更加深入的认识,但是Linux的学习可以说是从现在才刚刚开始。 这篇文章,我们将讲解若干个Linux的开发工…...
C++ 动态规划 线性DP 最长共同子序列
给定两个长度分别为 N 和 M 的字符串 A 和 B ,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M 。 第二行包含一个长度为 N 的字符串,表示字符串 A 。 第三行包含一个长度为 M 的字符串,表…...
【备战蓝桥杯】——循环结构终篇
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-yl4Tqejg4LkjZLAM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...
为什么说Python语法简单?
Python被广泛认为是一种语法简单、易学易用的编程语言,这种观点有几个关键的原因: 1、清晰简洁的语法结构: Python采用了清晰而简洁的语法结构,使得代码易于阅读和理解。Python的语法设计强调代码的可读性,采用了清晰…...
【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-管理组件状态(九)
管理组件状态 一、概述 在应用中,界面通常都是动态的。下图所示,在子目标列表中,当用户点击目标一,目标一会呈现展开状态,再次点击目标一,目标一呈现收起状态。界面会根据不同的状态展示不一样的效果。 Ar…...
EF Core入门例子(以SqLite为数据库)
测试环境: visual studio 2017 .net core 2.1 具体步骤如下: 1 新增名称为EFCoreDemo的.net core控制台程序,版本选择.net core 2.1,项目不能放到带中文的目录下,不然到后面执行Add-Migration命令时会报如下的错误…...
centos7 安装nginx
在 CentOS 7 上安装 Nginx,你可以选择从官方仓库(EPEL)安装,或者手动编译安装。以下是通过 EPEL 安装 Nginx 的步骤: 方法一:通过 EPEL 仓库安装 添加 EPEL 仓库: sudo yum install epel-relea…...
【Linux Day14 UDP网络通讯】
UDP网络通讯 UDP报文结构: 16位源端口:用于记录发送端的端口号(占用两个字节)16位目的端口:用于记录接收端的端口号(占用两个字节)16位UDP长度:确定UDP报文总长度,&…...
指针的深入了解6
1.回调函数 回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数 时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用࿰…...
PHP之PDO_MYSQL扩展安装步骤
1,如果有php源码包可以不用下载,在 源码包下的 ext/ 下面可以找到 cd php-8.1.9/ext/pdo_mysql 2,如果存在,直接安装 /usr/local/php-8.1.9/bin/phpize ./configure --with-php-config/usr/local/php-8.1.9/bin/php-config make &&a…...
【pytorch】nn.linear 中为什么是y=xA^T+b
我记得读教材的时候是yWxb, 左乘矩阵W,这样才能表示线性变化。 但是pytorch中的nn.linear中,计算方式是yxA^Tb,其中A是权重矩阵。 为什么右乘也能表示线性变化操作呢?因为pytorch中,照顾到输入是多个样本一起算的&…...
vite打包原理
vite 工程化开发:打包工具 启动速度很快 核心原理还是webpack 把webpack封装了,把webpack对象封装了 和vue2整体结构几乎一致 webpack两种模式:开发&生产 代码打包编译,本地起一个web服务器实时预览编译后的结果 build 命令模…...
导出pdf 加密、加水印、加页脚
1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> …...
Flutter 仿抖音 TikTok 上下滑动 播放视频
Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架,视频播放使用 video_player github:GitHub - PangHaHa12138/TiktokVideo: Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架 实现功能: 1.上下滑动自动播放切换视频,loading 封面…...
计算机网络——网络层(2)
计算机网络——网络层(2) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.…...
01-16Maven-SpringBoot入门
Maven继承Maven高级SpringSpringBoot入门 Maven 一、概念及功能 概念:Maven是Apache软件基金会组织维护的一款专门为Java项目提供项目构建和依赖管理的工具 1.1作用: 项目构建 构建:是一个将代码从开发阶段到生产阶段的一个过程…...
微信小程序(二十七)列表渲染改变量名
注释很详细,直接上代码 上一篇 新增内容: 1.改变默认循环单元item变量名 2.改变默认循环下标index变量名 基础模板有问题可以先看上一篇 源码: index.wxml <view class"students"><view class"item"><te…...
PHP 文件上传详解
PHP 文件上传详解 引言 在网站开发中,文件上传功能是一个非常实用的功能,它可以允许用户将文件上传到服务器,例如图片、文档等。PHP作为一门广泛使用的服务器端脚本语言,提供了强大的文件上传功能。本文将详细讲解PHP文件上传的相关知识,包括基本概念、方法、注意事项等…...
SparkSQL临时表实战:4种高效创建方式与应用场景解析
1. SparkSQL临时表基础与应用场景 临时表是SparkSQL中处理数据的重要工具,它允许我们在数据处理过程中暂存中间结果,避免重复计算。我在实际项目中经常遇到需要多次引用同一数据集的情况,这时候临时表就能大显身手。比如做数据清洗时…...
AI 驱动网络钓鱼主导数据泄露的机理、风险与防御体系研究 —— 基于阿联酋预警事件的实证分析
摘要 2026 年 4 月,阿联酋网络安全委员会公开预警,AI 增强型网络钓鱼已导致境内超90% 的网络数据泄露事件,日均产生约 34 亿封欺诈邮件,传统防御机制全面承压。本文以该权威预警为核心依据,系统解构生成式 AI 重构网络…...
短剧小程序三端互通:微信 / 抖音 / 快手数据同步,会员一键通用
短剧行业已进入全域流量、多端变现的时代。只做微信,公域起量慢;只做抖音快手,私域难沉淀、风控风险高。真正能长期盈利的玩家,都在布局三端互通—— 微信、抖音、快手小程序数据实时同步,会员权益一键通用,…...
如何快速实现Brick Design国际化:构建多语言应用的完整指南
如何快速实现Brick Design国际化:构建多语言应用的完整指南 【免费下载链接】brick-design 低代码框架,支持流式布局与自由布局拖拽编排,可视化拖拽、随意嵌套组合、实时渲染、实时辅助线展示、自由布局支持辅助对齐、支持自动吸附、实时组件…...
TradingAgents-CN智能交易框架:从架构到实践的全栈指南
TradingAgents-CN智能交易框架:从架构到实践的全栈指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 一、解析多智能体交易系统架构…...
CAPL不只是写脚本:揭秘它在整车V流程中的五大实战角色(仿真/测试/诊断)
CAPL不只是写脚本:揭秘它在整车V流程中的五大实战角色(仿真/测试/诊断) 当汽车电子工程师第一次接触CAPL时,往往会被它的"脚本语言"标签所局限。实际上,在整车开发的V流程中,CAPL更像是一把瑞士军…...
基于粒子群算法的主动配电网经济优化调度系统分析
基于IEEE33的主动配电网优化,采用IEEE33节点配电网进行仿真,搭建了含风光,储能,柴油发电机和燃气轮机的配电网经济调度模型,以总的运行成本最小为目标,考虑了储能以及潮流等约束,采用粒子群算法…...
【深度解析】二维半导体晶体管:突破摩尔定律的下一代集成电路核心
1. 二维半导体晶体管的崛起:摩尔定律的终结者? 当硅基芯片的制程工艺逼近1纳米物理极限时,整个集成电路行业都在寻找"后硅时代"的突破口。我第一次在实验室见到二硫化钼(MoS2)晶体管时,那片厚度不…...
2022年双目标柔性作业车间调度FJSP复现报告:基于IMDFA/D及其对比算法的完整复现与实践
2022双目标柔性作业车间调度FJSP复现 复现情况:对2022年所提基于分解的多目标进化算法IMDFA/D及其对比算法共六种算法的完整复现,包含MATLAB完整源代码及配套测试输入数据,程序到手可运行。 优化最大完成工时及机器负载(或能量消耗࿰…...
