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插件开发教程[通俗易懂]

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Java配置方式读取外部的资源配置文件

    Java配置方式读取外部的资源配置文件

  • java 敏感字过滤_Java实现敏感词过滤「建议收藏」

    java 敏感字过滤_Java实现敏感词过滤「建议收藏」系列目录:并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须…

  • HDU 4331 Image Recognition

    HDU 4331 Image Recognition

  • 单片机入门到高级开挂学习路径(附教程+工具)[通俗易懂]

    单片机入门到高级开挂学习路径(附教程+工具)[通俗易懂]一、先帮大家解答几个问题:1.单片机是什么?答:单片机就是一个微型CPU,把程序烧录芯片里面,通过控制不同的外围电路实现不同产品的功能。2.学单片机编程对数学英语有要求吗?答:数学会基本的加减乘除就行,英语会认单词a-z就行,很多外行人看到代码里一堆英文就头嗡嗡响,其实不然,只有少数语法是固定的,大多数英文都是工程师自己定义的,比如大神你也可以定义成DaShen(中文缩写)。那很多人此时就开始质疑,当初这么辛苦学数学和英语到底是为毛?数学和英语不是单片机开发的门槛,但却决定你以后能达到的高度,

  • CMakeLists.txt 语法介绍与实例演练

    CMakeLists.txt 语法介绍与实例演练一、Cmake简介cmake是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。二、常用命令1.指定cmake的最小版本cmake_minimum_required(VERSION3.4.1)这行命令是可选的,我们可以不写这句话,但在有些情况下,如果CMakeLists.tx…

  • 请简述什么是Vue组件化开发_vue组件化开发

    请简述什么是Vue组件化开发_vue组件化开发前言真实项目开发过程中,我们都是使用组件化的去开发vue的项目,但是组件化的思想又是如何来的呢?下面就从开始讲解演变过程演变过程1.0一般情况下vue都是单页面开发,所以项目中只会有一个inde

发表回复

您的电子邮箱地址不会被公开。

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