nginx编译安装lua模块
1. 获取nginx源代码1git clone https://github.com/nginx/nginx.git nginx-release
2. 下载安装LuaJIT1234git clone https://github.com/LuaJIT/LuaJIT.gitcd LuaJITmake make install
3. 下载lua-nginx-module12wget https://github.com/openresty/lua-nginx-module/archive/v0.10.7.tar.gztar zxvf v0.10.7.tar.gz
或者1git clone https://github.com/openresty/lua-nginx-module.git
4. 下载ngx_devel_kit1wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
或者1git clone https://github.com/simpl/ngx_devel_kit.git
5. 编译安装nginx1 ...
LUAWAF
LUAWAFLUAWAF是我编写的一个针对Nginx的Web应用提供安全防护的Web应用防火墙。
支持平台目前WAF只支持Windows平台
安装1,使用本软件最好直接在OpenResty官网下载OpenResty,OpenResty自身带有Nginx
2,将该WAF下载到OpenResty的lua目录下,解压即可
3,日志读写的文件必须给与相应的权限
使用说明1,需要在nginx.conf文件中包含WAF解压出来的conf中的waf.conf文件
2,需要在waf/conf路径下的config.lua文件中修改日志存储位置以及规则存储位置
配置说明是否开启白名单IP检查
_M.IPWhiteCheck = "on"
是否开启黑名单IP检查
_M.IPBlockCheck = "on"
是否开启白名单URl检查
_M.WhiteUrlCheck = "on"
是否开启黑名单URl检查
_M.BlockUrlCheck = "on"
是否开启参数检查
_M.ArgCheck = "on"
是否 ...
lua简明教程
前言lua是一种轻量小巧的脚本语言。
lua特性1.轻量级,编译后不过200K2.可扩展性3.自动内存管理4.支持面向过程编程和函数式编程……
lua应用场景1.游戏开发2.独立应用脚本3.web应用脚本4.扩展和数据库插件5.安全系统
安装使用安装问题1.编译lua时,提示1lua.c:80:31: fatal error: readline/readline.h: No such file or directory
linux环境缺少readline库。到ftp://ftp.gnu.org/gnu/readline/ 下载并进行安装
2.安装完readline后提示123456789/usr/local/lib/libreadline.so: undefined reference to `tputs'/usr/local/lib/libreadline.so: undefined reference to `tgoto'/usr/local/lib/libreadline.so: undefined reference to `tgetflag'/usr ...
Performance evaluation of MQTT and CoAP via a common middleware
Performance evaluation of MQTT and CoAP via a common middleware(全文翻译)
12345678910Dinesh ThangavelFaculty of Engineering National University of SingaporeXiaoping MaSense and Sense-Abilities, Institute for Infocomm ResearchAlvin ValeraSense and Sense-Abilities, Institute for Infocomm ResearchHwee-Xian TanSense and Sense-Abilities, Institute for Infocomm ResearchColin Keng-Yan TanSchool of Computing National University of Singapore
摘要:无线传感器网络(WSN)通常由在有限资源的设备上操作的传感器节点和网关组成。因此,WSN需要带宽高效和节能的应用协议进行数据 ...
Lua 正确处理可变参数
为了在 Lua 里处理可变参数,我们可能会写下面这样的代码:
local function args(...)
if next({...}) then
for _, v in ipairs{...} do
print(v)
end
else
print("empty var")
end
end
args(10, 20, 30)
– output:
– 10
– 20
– 30
咋一看,貌似没什么问题,但是当传入 args(10, nil, 30) 时,发现并不符合我们的预期:
-- output:
-- 10
原因就在于 ipairs 遍历的 table 必须是一个序列。序列的数字索引必须连续。table 中间包括 nil,这样的 table 就不是序列,例如:a={10, nil, 30} 它不是序列,因为它的数字索引是 1 3 不是连续的, 所以它不是序列。为了处理这个问题,就要引入 select 了。
调用 ...
FFLIB之FFLUA——C++嵌入Lua&扩展Lua利器
摘要:在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过python做嵌入式脚本,二者各有特点,关于python之后会写相关的文章,python对于我而言更喜欢用来编写工具,我前边一些相关的算法也是用python来实现的。今天主要讲Lua相关的开发技术。Lua具有如下特点:
Lua 拥有虚拟机的概念,而其全部用标准C实现,不依赖任何库即可编译安装,更令人欣喜的是,整个Lua 的实现代码并不算多,可以直接继承到项目中,并且对项目的编译时间几乎没有什么影响
Lua的虚拟机是线程安全的,这里讲的线程安全级别指得是STL的线程安全级别,即一个lua虚拟机被一个线程访问是安全的,多个lua虚拟机被多个线程分别访问也是安全的,一个lua虚拟机被多个线程访问是不安全的。
Lua的概念非常少,数据结构只有table,这样当使用Lua作为项目的配置文件时,即使没有编程功底的策划也可以很快上手编写。
Lua没有原生的对象,没有class的关键字,这也保障了其概念简单,但是仍然是可以使用Lua面向对象编程的 ...
C++与Lua本质原始交互API
<a href="/2015/11/10/kmp/" rel="next" title="KMP查找子字符串">
<i class="fa fa-chevron-left"></i>
<p class="post-nav-pre-next-title">
KMP查找子字符串
</p>
</a>
</div>
<span class="post-nav-divider"></span>
<div class="post-nav-prev post-nav-item">
&l ...
openresty借助lua实现动态跳转https,动态获取证书内容响应
内容描述: 借助openresty通过lua代码实现动态跳转https,并动态获取证书
1234567891011121314151617181920server { listen 80; rewrite_by_lua 'rewrite_https("site")'; include /usr/local/openresty/nginx/conf/gb/site/facadehost_common.conf;}server { listen 443 ssl; ssl on; # ssl_certificate ssl_certificate_key用于满足Nginx配置的占位符 ssl_certificate /usr/local/openresty/nginx/conf/ssl/nginx.pem; ssl_certificate_key /usr/local/openresty/nginx/conf/ssl/nginx.key.pem; # 通过ssl_certifi ...
Lua元方法 · 花生肉泥
lua在创建新的table时不会创建元表,比如12local t = {}print(getmetatable(t))
我们是使用getmetatable来获取一个table或者userdata类型变量的元表,当创建新的table变量时,使用getmetatable去获得元表,将返回nil,同理可以用setmetatable去设置一个table或userdata类型变量的元表,代码如下:123456local t = {}print(getmetatable(t)) local t1 = {}setmetatable(t,t1)assert(getmetatable(t) == t1)
任何table都可以作为任何值的元表,而一组相关的table有可以共享一个通用的元表,此元表描述了他们共同行为,一个table甚至可以作为它自己的元表,用于描述其特有的行为,总之,任何搭配形式都是合法的。
在lua中,只能设置table元表,若要设置其他类型的元表,必须通过C代码完成,还存在一个特例,对于字符串,标准的字符串程序库为所有的字符串设置了一个元表,而其他类型在默认情况下都没 ...
lua之运算符
lua运算符 算术运算符 +,-,*(乘),/(除),%(取余),^(乘幂),-(负号) 关系运算符 ==(等于),~=(不等于),>,<,>=,<= 逻辑运算符 and,or,not 其它运算符 ..(连接符),#(一元运算符,返回字符串或表的长度) 运算符优先级 not - (unary) * / + - .. < > <= >= ~= == and or 注:除了^和..外所有的二元运算符都是左连接的。 示例 运算内容 等同 解释后 a+i < b/2+1 <–> (a+i) < ((b/2)+1) 5+x^2*8 <–> 5+((x^2)*8) a < y and y <= z <–> (a < y) and (y <= z) -x^2 <–> -(x^2) x^y^z <–> x^(y^z)