lua
文章平均质量分 85
thlzjfefe
这个作者很懒,什么都没留下…
展开
-
Nginx Location指令URI匹配规则详解
1、介绍location指令是http模块当中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器、非法的请求直接拒绝并返回403、404、500错误处理等。2、location指令语法location [=|~|~*|^~|@] /uri/ { … } 或 location @name { … }3、URI匹配模式location指令分为两种匹配模式:1> 普通字符串匹配:以=开头或开头无引导字符(~)的规则2> 正则匹配:转载 2021-03-17 19:47:57 · 726 阅读 · 0 评论 -
nginx 常见正则匹配符号表示
1、^: 匹配字符串的开始位置; 2、 $:匹配字符串的结束位置; 3、.*: .匹配任意字符,*匹配数量0到正无穷; 4、\. 斜杠用来转义,\.匹配 . 特殊使用方法,记住记性了; 5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp 6、i不区分大小写 一.正则表达式匹配,其中:* ~ 为区分大小写匹配...转载 2021-03-17 19:46:42 · 462 阅读 · 0 评论 -
揭开正则表达式的神秘面纱
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个...转载 2021-03-14 19:20:48 · 109 阅读 · 0 评论 -
Lua正则表达式匹配
最近学习了一下lua的正则表达式,在此记录一下。为应对复杂多变的字符串匹配需求,很多语言都有对正则表达式的支持。Lua因为要保持简洁与小巧的设计目标,并没有像perl和python一样支持全部posix标准正则表达式规则。比如没有{n}匹配n次的规则,字符{和}都只是作为普通字符存在,字符|在posix标准正则表达式中表示或关系,在lua的pattern中也只是作为普通字符。在lua中,一个正则表达式被称作为pattern,pattern中一对圆括号()包含的区域被称作为capture.lua中一转载 2021-03-14 19:15:49 · 3739 阅读 · 0 评论 -
nginx配置教程之add_header的坑详解
前言add_header 是 headers 模块中定义的一个指令,顾名思义就是用来添加 http 响应头的。但请注意他只是「添加」而已,并不是重写。所以如果已经存在某个头,再使用 add_header 就会出问题。而且在低版本的 nginx 中 add_header 还不支持在错误页面中使用。这是一个坑比较多的指令。它的处理阶段比 location 处理晚,虽然可以写在 location 中,但如果 rewrite 别的 location,那么上一个 location 中尚未处理的 add_hea转载 2020-12-07 11:19:28 · 8166 阅读 · 1 评论 -
引流测试-nginx_mirror镜像数据
一、背景最近nginx官网公布了nginx1.13.4最新的ngx_http_mirror_module模块,利用mirror模块,业务可以将线上实时访问流量拷贝至其他环境,基于这些流量可以做版本发布前的预先验证,进行流量放大后的压测等等mirror模块配置分为两部分,源地址和镜像地址配置,配置位置可以为nginx配置文件的http, server, location上下文,配置示例为:location / {root html;index index.html index.htm.转载 2020-12-02 10:54:24 · 445 阅读 · 0 评论 -
lua——string之string.gsub
translated from the lua documentstring.gsub用法:函数原型:string.gsub( s, pattern, rep1[, n] )函数功能:返回一个和pattern匹配,并且用rep1替换的副本。rep1可以是string、table和functin。 第二个返回值n是代表匹配的个数。rep1说明:如果rep1是string类型,那么rep1用于替换匹配的字符串。%代表转义字符,rep1中%n里面,...转载 2020-10-14 20:29:07 · 2038 阅读 · 1 评论 -
Lua中的模块与module函数详解
这篇文章主要介绍了Lua中的模块与module函数详解,本文讲解了编写一个简单的模块、避免修改模块名的方法、模块名参数等内容,需要的朋友可以参考下很快就要开始介绍Lua里的“面向对象”了,在此之前,我们先来了解一下Lua的模块。1.编写一个简单的模块Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个table里有一些变量、一些函数…等等,这不就是我们所熟悉的类吗?没错,和类很像(实际上我说不出它们的区别)。我们来看看一个简单的模块,新建一个文件,命名为game..转载 2020-06-18 21:54:05 · 750 阅读 · 0 评论 -
lua IDE 编译调试工具
ZeroBrane Studio下载地址:https://studio.zerobrane.com/download?not-this-time原创 2020-06-18 20:30:21 · 434 阅读 · 0 评论 -
lua代码调试遇到的坑
openresty启动时,通过 init_worker_by_lua_file D:\init.lua的方式加载文件,如果lua代码中有错误,则error日志中未打印出错误信息。比如以下代码:1、连接一个值为nil的变量local angx.log(ngx.WARN, "value:" .. a)ngx.log(ngx.WARN, "Successfully print the value of a")2、读文件时,如果文件test.lua不存在local f = assert.原创 2020-06-17 17:25:02 · 7188 阅读 · 1 评论 -
nginx oprenresty lua 常用链接
1、lua https://luajit.org/luajit.html 模块lua-nginx-module https://github.com/openresty/lua-nginx-module https://openresty-reference.readthedocs.io/en/latest/Lua_Nginx_API/2、ngin...原创 2019-11-24 12:47:01 · 452 阅读 · 0 评论 -
ngx.location.capture 只支持相对路径,不能用绝对路径
ngx.location.capture 是非阻塞的,ngx.location.capture也可以用来完成http请求,但是它只能请求到相对于当前nginx服务器的路径,不能使用之前的绝对路径进行访问,但是我们可以配合nginx upstream实现我们想要的功能。在nginx.cong中的http部分添加如下upstream配置upstream backend { server...转载 2019-09-23 15:33:11 · 1282 阅读 · 0 评论 -
OpenResty学习 lua-resty-http、ngx.location.capture
Http客户端OpenResty默认没有提供Http客户端,需要使用第三方提供;当然我们可以通过ngx.location.capture去方式实现,但是有一些限制,后边我们再做介绍。我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-http。lua-resty-http1、下载lua-re...转载 2019-09-23 15:30:28 · 1999 阅读 · 0 评论 -
NGINX + LUA实现复杂的控制 连接mysql
安装lua_nginx_module 模块lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenRestyCentos和debian的安装就简单了。。这里说下freebsd的安装:fetch http://www.lua.org/ftp/lua-5.1.4.tar.gztar zxvf lua-5.1.4.tar.gzcd lua-5.1.4make...转载 2019-09-23 15:19:02 · 311 阅读 · 0 评论 -
nginx+lua+redis实现反向代理
背景最近要进行IVR的重构, 我们现在系统接了三家IVR服务商, N个业务, 由于IVR这玩意一般只能外网回调, 而开发环境又不允许外网随便访问,着实烦人。 所有我们打算重构一把, 封装多家IVR, 对业务透明, 同时回调可以针对多家IVR服务商的不同callid直接转发到当时请求的同学的开发域名去。而不同的IVR服务商的callid参数是不同的,有的是在url里面(call_id...转载 2019-09-22 14:05:05 · 877 阅读 · 0 评论 -
ngx_lua模块中的共享内存字典项API
在ngx_lua模块中使用共享内存字典项相关API的前提条件是已经使用lua_shared_dict命令定义了一个字典项对象,该命令的具体用法为:语法:lua_shared_dict <name> <size>该命令主要是定义一块名为name的共享内存空间,内存大小为size。通过该命令定义的共享内存对象对于Nginx中所有worker进程都是可见的,当...转载 2019-09-22 12:03:32 · 419 阅读 · 0 评论 -
nginx lua
1、这里我们假定,同时要访问多个数据源而且,查询是没有依赖关系的,那我们就可以同时发出请求这样我总的延时,是我所有请求中最慢的一个所用时间,而不是原先的所有请求用时的叠加!这种方式,就是用并发换取了响应时间location = /api { content_by_lua ' local res1, res2, res3 = ngx.loc...原创 2019-09-22 12:02:06 · 220 阅读 · 0 评论