欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kong插件开发-验证篇

程序员文章站 2024-03-24 18:46:28
...

1 konga安装与使用(非必需)

kong admin api 对外暴露的端口为8001,可通过curl命令进行设置,
除此之外,还有可选择的管理界面konga,通过该工程可对kong进行可视化配置管理。
konga的安装较为简单,使用前需要具备一些条件:

  • nodejs >=8 ,推荐8.11.3 LTS(版本12在安装依赖时候可能会出现一些问题)
  • 推荐使用mysql数据库(还支持 postgresSQL, MongoDB)
  • 运行的kong版本>=1.0.0

1.1 konga源码安装

此处使用源码进行安装,在准备的工作目录执行:

$ git clone https://github.com/pantsel/konga.git  
$ cd konga
$ npm i

1.2 mysql安装与配置

  1. mysql安装
    过程(略)……

  2. 检验是否安装:

    aaa@qq.com:~$ mysqladmin --version
    mysqladmin  Ver 8.42 Distrib 5.7.27, for Linux on x86_64
    
  3. 登录并创建konga数据库:
    假设您已经设置了mysql的用户名(root)和密码 (123456)

    # 1 登录mysql
    aaa@qq.com:~$ mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g. 
    (省略)……
    # 2 创建konga
    mysql> create database if  not exist konga charset utf8 column utf8_general_ci ;
    #  3 检查是否创建成功,若有konga ,表示创建成功
    mysql> show databases; 
    

1.3 konga配置

完成依赖包和数据库的安装后, 需要配置一下.env 中关于数据库连接的配置
在源码目录执行如下命令:

## 进入源码目录
cd ~/workspace/konga
cp .env_example .env

vim .env
## 修改为如下设置
PORT=1337
NODE_ENV=production
KONGA_HOOK_TIMEOUT=120000
DB_ADAPTER=mysql
DB_URI=mysql://localhost:3306/konga
DB_USER=root
DB_PASSWORD=123456
KONGA_LOG_LEVEL=warn
TOKEN_SECRET=some_secret_token

## 执行下面的语句 创建数据库的表
node ./bin/konga.js  prepare --adapter mysql --uri mysql://localhost:3306/konga

## 启动服务
npm start

1.4 konga运行

  1. 在浏览器键入地址:http://localhost:1337
    注册登录用户,显示如下:
    kong插件开发-验证篇

  2. 设置kong admin api监控路径:
    选择 connections进行添加
    kong插件开发-验证篇

  3. 展示连接的kong配置项:
    其中自定义插件hello-world已经显示在上面
    kong插件开发-验证篇

接下来我们就可以通过konga进行kong的配置咧,并且可以据此验证我们自定义插件的效果~

2 测试验证

2.1 配置 SERVICES (服务)/ROUTES(路由)/ PLUGINS(插件)

  1. 设置service选项,其余可选默认配置:
    http://localhost:8000/ kong插件开发-验证篇
  2. 在创建的service选项,添加route配置选项:
    路径:"/index"
    kong插件开发-验证篇
  3. 在创建的service选项或route选项页面,添加plugin设置:
    kong插件开发-验证篇
    按照上述配置完毕后,即可进行功能的测试验证了

2.2 通过浏览器或 curl请求进行功能验证

  • 在浏览器键入路径: http://localhost:8000/index ,返回body内容如下:
    >>插件开始运行了
    >>>>>>>执行:access阶段开始
    输出嵌入的内容(请求在还未到达上游服务器):
    kong.version:	1.4.0
    kong.client.get_ip():	127.0.0.1
    kong.request.get_scheme():	http
    kong.request.get_host():	localhost
    kong.request.get_port()	:8000
    kong.request.get_http_version():	1.1
    kong.request.get_method():	GET
    kong.request.get_path():	/index
    <<<<<<<执行access阶段结束 
    
  • 通过curl命令:curl -i http://localhost:8000/index
    kong插件开发-验证篇
    如此可见,kong插件成功拦截到了我们配置的url请求,能够正常拦截切输出我们预期的结果,则可说明嵌入的lua脚本(插件)生效。

可通过该流程进行插件的开发测试

相关标签: konga kong测试