Kong 自定义插件安装和调试

这篇具有很好参考价值的文章主要介绍了Kong 自定义插件安装和调试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件格式

官方文档

├── kong-plugin-mepjwt-0.1.0-1.all.rock  # luarocks安装依赖 luarocks pack生成的文件
├── kong-plugin-mepjwt-0.1.0-1.rockspec  # luarocks的安装依赖
└── mepjwt
    ├── handler.lua  # 主要处理业务逻辑的文件
    ├── jwt_parser.lua  # 依赖文件  jwt解析脚本
    ├── schema.lua  # 给handle提供配置的文件
    ├── utils_mysql.lua  # 依赖文件 数据库处理脚本
    └── utils_redis.lua  # 依赖文件  redis处理脚本

rockspec文件

# kong-plugin-mepjwt-0.1.0-1.rockspec

local plugin_name = "mepjwt"  #  插件名称
local package_name = "kong-plugin-" .. plugin_name
local package_version = "0.1.0"
local rockspec_revision = "1"

local github_account_name = "Kong"
local github_repo_name = "kong-plugin"
local git_checkout = package_version == "dev" and "master" or package_version


package = package_name
version = package_version .. "-" .. rockspec_revision
supported_platforms = { "linux", "macosx" }


description = {
  summary = "Kong is a scalable and customizable API Management Layer built on top of Nginx.",
  homepage = "https://"..github_account_name..".github.io/"..github_repo_name,
  license = "Apache 2.0",
}


dependencies = {
}

# 主要是这里的 定义插件的路径和主要的两个文件路径 =号后面根据实际填写
build = {
  type = "builtin",
  modules = {
    -- TODO: add any additional code files added to the plugin
    ["kong.plugins."..plugin_name..".handler"] = "/etc/kong/plugins/"..plugin_name.."/handler.lua",
    ["kong.plugins."..plugin_name..".schema"] = "/etc/kong/plugins/"..plugin_name.."/schema.lua",
  }
}

安装插件

1、在本地安装(基于当前目录中的.rockspec)

 luarocks make

response

kong-plugin-mepjwt 0.1.0-1 is now installed in /usr/local (license: Apache 2.0)

2、打包已安装的文件

luarocks pack kong-plugin-mepjwt

response

Packed: /etc/kong/plugins/kong-plugin-mepjwt-0.1.0-1.all.rock

同时会生成kong-plugin-mepjwt-0.1.0-1.all.rock文件

3、安装插件

luarocks install kong-plugin-mepjwt-0.1.0-1.all.rock

response

kong-plugin-mepjwt 0.1.0-1 is now installed in /usr/local (license: Apache 2.0)

查看

luarocks list|grep jwt  

response

kong-plugin-jwt-signer
kong-plugin-mepjwt  # 已安装

DB-less模式插件加载

kong.conf文件中添加插件

plugins = mepjwt # 这里只使用了自定义的插件详细是用参考官网
log_level = debug

yaml文件配置

services:
  - name: service  # 服务名称
  url: xxxxx  # 这里填写backend服务地址
    tags:
      - service
    plugins:
      - name: jwt
        config:  # 这里需要同步配置一份
          mysql:
            host: xxx
            port: xxx
            database: xxx
            user: xxx
            password: xxx
          redis:
            host: xxxx
            port: xxxx
            password: xxxx
            charset: xxxx
            user_db: xxx
    routes:
      - name: ngrok-mep-server  # 路由名称
        paths:
          - /mep-service  # 路由后缀名称



consumers:
  - username: jwt-auth-user


plugins:
  - name: jwt
    config:  # schema中的配置
      mysql:
        host: xxx
        port: xxx
        database: xxx
        user: xxx
        password: xxx
      redis:
        host: xxxx
        port: xxxx
        password: xxxx
        charset: xxxx
        user_db: xxx

重启加载

kong restart --v

Kong 自定义插件安装和调试,Gateway,kong,gateway

在加载过程中难免会有错误,需要自己打日志排查

debug

luarocks remove kong-plugin-mepjwt && luarocks make && luarocks pack kong-plugin-mepjwt && luarocks install kong-plugin-mepjwt-0.1.0-1.all.rock

kong restart --v

校验

我的插件主要是解开token王header里面塞了三个参数,在调试过程中已经完成

Kong 自定义插件安装和调试,Gateway,kong,gateway

kong-plugin-mepjwt && luarocks install kong-plugin-mepjwt-0.1.0-1.all.rock

kong restart --v文章来源地址https://www.toymoban.com/news/detail-612145.html


# 校验

我的插件主要是解开token王header里面塞了三个参数,在调试过程中已经完成

[外链图片转存中...(img-CQqj9H2r-1689328795146)]

到了这里,关于Kong 自定义插件安装和调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker安装Kong

    首先我们创建一个 Docker 自定义网络,以允许容器相互发现和通信。在下面的创建命令中 kong-net 是我们创建的 Docker 网络名称。 Kong 目前使用 Cassandra 或者 PostgreSQL,你可以执行以下命令中的一个来选择你的 Database。请注意定义网络 --network=kong-net 。 使用 PostgreSQL: 我们使用 d

    2024年02月06日
    浏览(29)
  • kong-dashboard安装

    简介 kong-dashboard提供了UI界面操作和查看kong,可以进行api、consumers、plugins操作 官网:https://hub.docker.com/r/pgbi/kong-dashboard/ 安装 联网安装 备份后安装到使用环境 启动 界面 通过页面http://localhost:8080可以进行新增、修改、删除操作,如果只是基础的使用感觉够了。 API界面

    2024年02月13日
    浏览(41)
  • Kong网关初次尝试

    本次目的:研究市面上的API网关 Docker  部署 : 1. postgre 2. kong migrations bootstrap 3. kong 问题是migrations时会报lua的错误,后面调研一下。 1. 注册一个service,指定服务的ip 端口等信息。 2. 设定一个路由发现方式,支持path、method、host,这里先用最简单的path。创建了路由test指定了

    2024年01月25日
    浏览(39)
  • Kong关键概念 - Upstreams

    Upstream是指Kong Gateway转发请求到的API、应用程序或微服务。在Kong Gateway中,Upstream 对象代表了一个虚拟主机名,并可以用于对多个服务进行健康检查、断路器和负载均衡。 Upstream 和 service 交互 您可以将服务配置为指向一个Upstream,而不是一个主机。例如,如果您有一个名为

    2024年01月24日
    浏览(35)
  • Kong网关概述

    介绍Kong网关 Kong Gateway是一个轻量级、快速且灵活的云原生API网关。API网关是一个反向代理,可以管理、配置和路由对API的请求。 Kong Gateway在任何RESTful API的前面运行,并且可以通过模块和插件进行扩展。它被设计用于在分散式架构中运行,包括混合云和多云部署。 通过Kon

    2024年01月23日
    浏览(41)
  • 【云原生网关】Kong 使用详解

    目录 一、前言 二、Kong介绍 三、Kong核心组件 3.1 kong组件介绍 3.1.1 Kong Server

    2024年02月02日
    浏览(38)
  • Kong关键概念 - 路由(Routes)

    路由(Routes) 路由决定在请求到达Kong Gateway之后如何(以及是否)将其发送到其服务。服务代表后端API,而路由定义了对客户端暴露的内容。 一个单独的服务可以有多个路由。一旦匹配到路由,Kong Gateway会将请求代理到其关联的服务。 路由与服务的交互 路由与服务结合使用

    2024年01月23日
    浏览(36)
  • Kong关键概念 - 服务(Services)

    服务(Services) 在Kong Gateway中,服务是代表外部上游(upstream)API或微服务的实体。例如,数据转换微服务、计费API等。 服务的主要属性是其URL。您可以使用一个字符串来指定URL,或者通过分别指定其协议、主机、端口和路径来指定URL。 服务与路由的交互 服务与路由结合使

    2024年01月23日
    浏览(34)
  • Kong 服务和路由的添加

    这里参考DB-less-Mode,因为使用的是 yaml 配置文件的形式,所以所有的相关配置只需要往初始化的 kong.yml 文件中添加就可以了,就像nginx的配置文件 DB-less-Mode vim /etc/kong/kong.yml Response: 我们可以在kong的 8000 端口后加上路由后缀 /test-service 查看服务是否正常 这里由于项目路径原因

    2024年02月16日
    浏览(37)
  • Kong工作原理 - 负载均衡 - 负载均衡算法

    负载均衡器支持以下负载均衡算法: 1. 轮询(Round-robin) 2. 一致性哈希(Consistent Hashing) 3. 最少连接(Least Connections) 4. 延迟(Latency) 这些算法仅在使用upstream实体时可用,详见高级负载均衡。 注意:对于所有这些算法,重要的是要了解如何设置每个后端的权重和端口。

    2024年01月25日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包