Openresty 学习笔记(三)扩展库之neturl

github地址:https://github.com/golgote/neturl

最近在搞一个视频加密播放,中间使用要用lua 匹配一个域名,判断该域名是否正确

PS:使用PHP很好做,lua 的没找到呀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
preg_match("/^((http|https):\/\/)?([^\/]+)/i", "http://www.tinywan.com/p/124.html", $matches);
var_dump($matches);
 
// 输出结果
array(4) {
  [0]=>
  string(22) "http://www.tinywan.com"
  [1]=>
  string(7) "http://"
  [2]=>
  string(4) "http"
  [3]=>
  string(15) "www.tinywan.com"
}

 下来使用lua 在Nginx 中实现

(1)直接下载官网的url.lua文件,放在 $PATH/openresty/lualib/resty 目录下

(2)编写文件 ngx_re_match.lua

1
2
3
local url = require "resty.url"
local u = url.parse("https://www.tinywan.com/p/124.html")
ngx.say("host: ",u.host)

(3)location 匹配

1
2
3
location /lua_match {
    content_by_lua_file .../nginx/conf/lua/ngx_re_match.lua;
}

(4)通过curl 请求访问结果 

1
2
curl https://hls-auth.tinywan.com/lua_match
host: www.tinywan.com

  

  

  

posted @   Tinywan  阅读(1465)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示