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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何搭建镜像网站_模拟网站的主页地址怎么打开

    如何搭建镜像网站_模拟网站的主页地址怎么打开TeleportUltraTeleportUltra所能做的,不仅仅是离线浏览某个网页(让你离线快速浏览某个网页的内容当然是它的一项重要功能),它可以从Internet的任何地方抓回你想要的任何文件,它可以在你指定的时间自动登录到你指定的网站下载你指定的内容,你还可以用它来创建某个网站的完整的镜象,作为创建你自己的网站的参考。我们在日常学习、工作中,需要研究和学习其它优秀网站的构建等,通过TeleportUltraTeleportUltra创建网站完整的镜象,就显得非常方便了。…

    2025年10月6日
    3
  • 打开jupter notebook报错[WinError 10049]「建议收藏」

    打开jupter notebook报错[WinError 10049]「建议收藏」首先从anaconda下打开jupyternotebook,报错如下:File“F:\anaconda\Scripts\jupyter-notebook-script.py”,line10,insys.exit(main())File“F:\anaconda\lib\site-packages\jupyter_core\application.py”,line268,inlaunch_instancereturnsuper(JupyterApp,cls).launch_i

    2022年10月1日
    4
  • jetty和tomcat优势比较

    jetty和tomcat优势比较Jetty 和 tomcat 的比较 nbsp 相同点 1 nbsp nbsp nbsp nbsp nbsp nbsp Tomcat 和 Jetty 都是一种 Servlet 引擎 他们都支持标准的 servlet 规范和 JavaEE 的规范 nbsp nbsp 不同点 1 nbsp nbsp nbsp nbsp nbsp nbsp 架构比较 Jetty 的架构比 Tomcat 的更为简单 Jetty 的架构是基于 Handler 来实现的 主要的扩展功能都可以用 Handler 来实现

    2025年7月22日
    6
  • 编译成功了,运行为什么会失败_如何编译内核

    编译成功了,运行为什么会失败_如何编译内核1:首先在内核文件夹当中选择编译配置文件arch/arm/configs下选则davinci_dm368_ipnc_defconfig_nand(nandflash启动),davinci_dm368_ipnc_defconfig_nfs(nfs文件系统启动)2:makemenuconfig保存退出3:makeARCH=armCROSS_COMPILE=arm_v5t_le-

    2022年8月13日
    7
  • efishell无法开机shell_efishell 开机出现efi shell卡住不动了解决方法全集「建议收藏」

    efishell无法开机shell_efishell 开机出现efi shell卡住不动了解决方法全集「建议收藏」[文章导读]最近有很多网友问我,为什么我的电脑开机后出现efishell提示进不了系统,开机出现efishell提示时,一般是由于第一启动项设置的是efishell启动的,有的网友告诉我,我第一启动项明明设置的是硬盘启动,当然还有一种情况就是前面的启动项都无法加载,然后按启动顺序启动,然后就启动到efishell了,出现这种情况一般就是系统引导破坏或是找不到引导项了。那么怎么找到原并解决…

    2022年7月24日
    39
  • 基于Vue的电商后台管理系统

    基于Vue的电商后台管理系统前端项目是基于Vue的SPA项目,前端技术栈采用Vue+VueRouter+Element-UI+Axios+Echarts。目前完成进度:登陆界面、登录和退出功能、导航守卫功能

    2022年6月14日
    33

发表回复

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

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