lua
文章平均质量分 91
海燕技术栈
既然巅峰留不住,那就重走来时路
展开
-
开源API网关APISIX源码分析
APISIX主框架代码分析 apisix.core core.schema 配置文件与配置模板进行对比,看是否满足条件 core.table 对lua自带table的扩展,增加了一些功能 core.log 使用了nginx 的errlog模块,估计是将结果输出到nginx的errlog中 core.json 对json处理,主要用到了cjson和dkjson。 core.request 对ngx.req的封装 core.response 对ngx.resp的封装 core.utils 封装的工具 core.原创 2022-02-15 16:15:37 · 2156 阅读 · 0 评论 -
开源API网关APISIX分析、使用与扩展
想要实现一个功能详尽的API网关,纯粹靠自己来写是不科学的,不过,了解必要的原理是必要的。 编译使用 我打算使用apisix作为原始项目,所以首先应该学会对apisix的编译安装并使之能够成功运行。 项目地址 Apache APISIX 是一个云原生 API 网关 Apache APISIX 仪表板旨在让用户通过前端界面尽可能轻松地操作Apache APISIX 安装步骤 参考API服务网关实现之APISIX安装和部署 上面这个博客在安装可视化界面的时候存在问题,看看官方的。 官方dashboard原创 2022-02-14 23:02:06 · 1563 阅读 · 0 评论 -
如何实现API网关之Lua入门
构建Lua项目环境 LuaJIT是相对于Lua更为主流的存在 在IDEA中加入EmmyLua插件即可使用, idea运行lua脚本 上手写代码 基础语法 可以参考下面的资料 Lua入门参考 打印函数 print io.write print("123") io.write('1234') 循环 循环有两种 for循环 for i = 1, 10 do if i % 2 == 0 then io.write("偶数", i, '\n') else原创 2022-02-12 23:49:51 · 742 阅读 · 1 评论 -
开源API网关Orange代码分析
首先,了解一下Orange,Orange 是一个基于 OpenResty 的API网关。除 Nginx 的基本功能外,它还可用于API监控、访问控制(鉴权、WAF)、流量筛选、访问限速、AB测试、静/动态分流 等。 说句实在的,它已经实现了绝大部分的功能,只不过目前已经处于停滞状态了 项目目录结构 api 目测是提供的接口,官方文档中提到了该项目提供了API接口用于实现第三方服务 bin 应该是运行目录,里面主要是lua的一些第三方包 conf 配置模板,类比nginx中的配置 da原创 2022-02-11 22:14:49 · 1952 阅读 · 0 评论 -
如何实现API网关功能之初识OpenResty
首先,openResty采取的是Lua语言,所以首要的是需要掌握必要的Lua语法,最快的方案是找一个OpenResty的开源项目来读源码。这里推荐使用 orange。 了解OpenResty openResty官方中文文档 openResty基于Nginx和LuaJIT开发,是CDN的技术标准。拥有丰富的lua-resty库,形成了自己的生态体系,在API网关和软WAF等领域被广泛应用。 OpenResty的特性 文档详尽,测试用例比较丰富 自带命令行工具restydoc,通过shell查看文档 同步原创 2022-02-10 22:54:25 · 1736 阅读 · 0 评论 -
用lua做nginx扩展开发1
lua开发基础语法 安装 最好的实践是:在win10安装WSL(windows子系统)的ubuntu,然后使用 sudo apt install lua3 就可以了 简单语法 -- 返回arg1的阶乘 function demo0(arg1) if arg1==1 then return 1 end return arg1*demo0(arg1-1) end -- 运行结果为 -- root@MSI:/home/chaojilaji/lua-dem原创 2020-06-28 20:44:49 · 221 阅读 · 0 评论