Nginx_Lua安装

摘抄:

火云邪神语录:天下武功,无坚不破,唯快不破!Nginx的看家本领就是速度,Lua的拿手好戏亦是速度,这两者的结合在速度上无疑有基因上的优势。

最先将Nginx,Lua组合到一起的是OpenResty,它有一个ngx_lua模块,将Lua嵌入到了Nginx里面;随后Tengine也包含了ngx_lua模块。至于二者的区别:OpenResty是Nginx的Bundle;而Tengine则是Nginx的Fork。值得一提的是,OpenResty和Tengine均是国人自己创建的项目,前者主要由春哥晓哲开发,后者主要由淘宝打理。

至于OpenResty和Tengine孰优孰劣,留给大家自己判断,如下资料可供参考:

推荐看看春哥在Tech-Club上关于『由Lua粘合的Nginx生态环境』的演讲实录,有料!

 

安装:

需要最新版的NginxLuaJITngx_devel_kitngx_lua等安装文件。

因为安装在缺省路径,所以LuaJIT对应的lib,include均在/usr/local目录里。

下面就可以编译Nginx了(ngx_lua和ngx_devel_kit 直接解压就好,nginx会编译模块):

 

启动:

试着启动一下Nginx看看,遇到如下错误:

 

把下面的代码加入到Nginx的配置文件nginx.conf,并重启Nginx,然后浏览,就能看到效果了。

在深入学习ngx_lua之前

 

配置ngx_lua_waf

nginx下常见的开源waf有mod_security、naxsi、ngx_lua_waf这三个,mod_security是最老牌的,功能最强规则细定制性又强,但是配置最复杂高并发时性能差。naxsi是原生nginx下的waf,性能不错但是基于白名单,配置也很麻烦。ngx_lua_waf功能和规则虽然没有这两个强大,但赢在性能高和易用性强,基本上零配置,而且常见的攻击类型都能防御,是比较省心的选择。安装好ngx_lua后,把下载好的ngx_lua_waf复制到conf目录下,重命名为waf,在nginx.conf的http段添加:

修改/opt/nginx/conf/waf/config.lua文件,该文件为waf的配置文件,将RulePath和logdir改为实际的目录:

其它的安全配置,按照实际需要开启。设置好和启动nginx

测试规则是否生效:

任意文件读取:

sql注入:

返回禁止页面就说明配置成功了。

如果只是某一个虚拟主机需要开启waf,将nginx.conf中的 access_by_lua_file注释掉,放到需要开启waf的虚拟主机的server段中即可

发表评论

电子邮件地址不会被公开。 必填项已用*标注