2022最新Kong插件开发教程[通俗易懂]

2022最新Kong插件开发教程[通俗易懂]Kong网关插件开发教程

大家好,又见面了,我是你们的朋友全栈君。

一.前言

        很久没更新博客内容了~,之前一直想看Api网关的开源框架Kong,但是奈何各种事情打扰也没静下心来学习。不知道是什么缘故,之前总感觉Kong很难,入门门槛高。不过经过这几天的学习,发现和学习一个Nginx也没太多区别。可能人对自己未知的事物总是抱有一种恐惧感吧。今天分享记录一下Kong插件开发的基本流程。

二.原理分析

        Kong本身就是一个Lua包,并且是在Openresty的基础之上做了一层封装的应用。归根结底就是利用Lua嵌入Nginx的方式,赋予了Nginx可编程的能力,这样以插件的形式在Nginx这一层能够做到无限想象的事情。例如限流、安全访问策略、路由、负载均衡等等。那其实编写一个Kong插件,就是按照Kong插件编写规范,写一个自己自定义的Lua脚本,然后加载到Kong中,最后引用即可。

        官方文档参考: Plugin Development – Introduction – v2.7.x | Kong Docs

三.基本步骤与演示

1.插件功能简介 

         该插件防止客户端通过ip地址或者其他非法域名对Kong进行访问,否则返回自定义HTTP响应状态码(默认: 403)和消息内容(Access Forbidden)。

插件源码Github地址: https://github.com/dream-mo/kong-plugin-ip-access-forbidden

2.操作与开发步骤

1.在/usr/local/share/lua/5.1/kong/plugins路径下创建插件目录 ip-access-forbidden

2022最新Kong插件开发教程[通俗易懂]

2.必须存在至少2个文件: 

        1.handler.lua  

                业务的主核心逻辑代码编写.

        2.schema.lua

                定义参数校验、参数格式限制参数的传递合法性,handler.lua可以从中获取到注入的插件参数.

3.修改/etc/kong/kong.conf配置文件,加载ip-access-forbidden插件

plugins = bundled,ip-access-forbidden

2022最新Kong插件开发教程[通俗易懂]

4.重启kong或者reload kong

  kong restart
  kong prepare && Kong reload
  
5.访问加载插件是否正常

2022最新Kong插件开发教程[通俗易懂]

6.通过Konga界面配置插件

2022最新Kong插件开发教程[通俗易懂]

7.访问测试

2022最新Kong插件开发教程[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153166.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • layoutSubviews和drawRect

    layoutSubviews和drawRectLayoutSubviews    子类可以重写此方法,因为需要更精确执行他们子视图的布局。只有当autoresizing和基于约束的行为的子视图不提供你想要的行为,应重写此方法。该方法不应直接调用。如果你想要强制布局更新,下一次绘图更新之前 应当反向调用setNeedsLayout方法,如果您想要立即更新您的视图的布局,请调用layoutIfNeeded方法。

    2022年7月15日
  • php属于前端还是后端_php实时推送到前端

    php属于前端还是后端_php实时推送到前端功能说明使用第三方平台goeasy实现服务端向前端推送数据基本原理WebSocket使用准备申请goeasy账号并创建应用官网http://www.goeasy.io安装并开启goeasy插件(注意清除缓存)在插件配置中填写应用的Appkeys等配置项使用说明使用插件集成的事件插件在前台(index模块)和后台(admin模块)各集成了两个默认的事件订阅,可以在js中通过监听top来处理,例:也…

    2022年11月1日
  • aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」

    aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」说明公开的BTtracker服务器,因为种种原因总会经常失效,要想获取更多的peer需要经常维护这份列表。感谢github上的小伙伴提供了这么一份tracker自动更新列表:https://github.com/ngosang/trackerslist。我们要想Aria2也支持自动更新这份列表,那么你可以按照下面方法来实现。关于Aria2安装使用教程可参考:https://www.moerats…

    2022年6月16日
  • 简述数字证书的生成过程(数字证书认证过程)

    https://blog.csdn.net/abinge317/article/details/51791856RSA非对称加密的2个用途:加密(防窃听)RSA非对称加密会用到一对密钥,分别称为公钥和私钥,公钥加密之后的数据可以通过私钥来进行解密,私钥加密的数据也同样可以用对应的公钥进行解密。在web数据传输过程中,由于客户端和服务器端是多对一的关系,因此可以让所有的客户端持有相同的公钥,服务器持…

    2022年4月12日
  • linux安装yarn

    linux安装yarn这里介绍使用yum的方式:先要安装node.js,用node-v可以查看是否安装了node。1、添加yarn仓库wgethttps://dl.yarnpkg.com/rpm/yarn.repo-O/etc/yum.repos.d/yarn.repo2、安装yarnyum-yinstallyarn安装完成后,yarn-v可以查看版本。…

    2022年5月9日
  • mysql拼接字段的函数_mysql拼接字符串

    mysql拼接字段的函数_mysql拼接字符串MySQL的字符串拼接有三个函数CONCAT(str1,str2,…)CONCAT_WS(separator,str1,str2,…)GROUP_CONCAT(expr)这三个函数都各有作用,现在测试看看是什么样子的效果准备数据表CREATETABLE`user_info`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(255)DEFAULTNULL,`age`int(3)DEFAULTNULL,

    2022年9月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号