openresty目录结构与介绍
openresty文件夹
其中nginx是最经常修改配置的文件夹
nginx文件夹
logs文件夹: 存放日志文件:error.log, access.log, nginx.pid
sbin文件夹:存放nginx启动程序,一般先添加path
conf文件夹:存放nginx配置文件,例如nginx.conf等,我们添加的waf文件也放在了这里
html文件夹:存放nginx服务的网页程序,index.html等
conf文件夹
nginx.conf为nginx的启动默认配置文件,启动时可选择更改
waf文件夹:存放waf程序
waf文件夹:(此waf来源GitHub,也有很多更加完善的waf项目)
rule-config文件夹:存放规则文件,以正则表达式的格式存放
lib.lua文件:存放基本函数,如获取用户ip等
config.lua文件:存放开关,on->开启, off->关闭
init.lua文件:存放检查请求的函数,返回判断结果,此函数require以上两个文件,正则表达式从rule-config文件夹中获取
access.lua文件:启动检查,规定检查函数的执行顺序,返回判断结果,根据此结果判断是否拦截请求
日志行为
若在config.lua文件夹中规定:
/tmp中保存的日志实例(此日志由waf程序创建,在waf/lib.lua文件中可以更改日志的格式):
而在nginx/logs文件夹中的日志为nginx创建
access.log:访问日志,
error.log:错误日志,
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志 access_log off; # 关闭访问日志 path 指定日志的存放位置。 format 指定日志的格式。默认使用预定义的combined。 buffer 用来指定日志写入时的缓存大小。默认是64k。 gzip 日志写入前先进行压缩。压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢。默认是1。 flush 设置缓存的有效时间。如果超过flush指定的时间,缓存中的内容将被清空。 if 条件判断。如果指定的条件计算为0或空字符串,那么该请求不会写入日志。
nginx日志详见:https://blog.51cto.com/longlei/2132170
nginx.conf文件
此段设置让nginx率先征得waf程序的同意后再放行用户,请根据自己安装文件的路径更改
include mime.types; default_type application/octet-stream; lua_shared_dict limit 10m; lua_package_path "/usr/local/openresty/nginx/conf/waf/?.lua;/usr/local/openresty/lua-resty-core/lib/?.lua;;"; init_by_lua_file "/usr/local/openresty/nginx/conf/waf/init.lua"; access_by_lua_file "/usr/local/openresty/nginx/conf/waf/access.lua";