简述: openresty 功能强大,Lua脚本很丰富,强力推荐。
简介
支持丰富的 lua 插件,可以实现一些业务附加功能。
我实践过的一些功能,如:
- 自定义拦截规则,做黑白名单。比如给一个IP进行计数,2分钟内访问错误路径n次后屏蔽10分钟。
- 读写 redis,实现配置的动态更新。如做接口白名单的更新;
- 收到请求时调用其它URL接口,进行鉴权
- 动态页面渲染,例如文章一些简单动态内容,如访问计数,用户状态这些简单的逻辑让客户端单独再发起n次调用没啥必要,直接服务器端渲染。
- 自定义日志格式,如在日志中附加请求报文中的某个字段内容。
- 加解密。之前我们有一个web接口post的报文是加密的, 需要根据内容的某个字段进行手动路由, 转到不同数据中心。
关于性能
有人担心性能,其实不需要太担心的;
考虑点有几个
- 服务器内部之间的调用,肯定比客户端过来得快
- lua性能很强,简单规则对性能基本毫无影响
- 复杂功能更多是属于临时性的快速应急措施,后期还是建议挪到后端
安装
|
|
核心功能
相比nginx最主要的就是增加了 lua, lua支持里面不得不说的关键就是它的运行阶段;
理解为一个功能应该放置在那个阶段运行才有效;
例如处理日志文件格式,肯定是要在其它各流程都处理完成后才进行
xxx_lua_block 表示代码块, 即写在配置文件里面的;
xxx_lua_file 表示外部lua代码文件
|
|