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安装与配置
-
mysql安装
过程(略)…… -
检验是否安装:
aaa@qq.com:~$ mysqladmin --version mysqladmin Ver 8.42 Distrib 5.7.27, for Linux on x86_64
-
登录并创建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运行
-
在浏览器键入地址:http://localhost:1337
注册登录用户,显示如下: -
设置kong admin api监控路径:
选择 connections进行添加 -
展示连接的kong配置项:
其中自定义插件hello-world已经显示在上面
接下来我们就可以通过konga进行kong的配置咧,并且可以据此验证我们自定义插件的效果~
2 测试验证
2.1 配置 SERVICES (服务)
/ROUTES(路由)
/ PLUGINS(插件)
- 设置service选项,其余可选默认配置:
http://localhost:8000/ - 在创建的service选项,添加route配置选项:
路径:"/index"
- 在创建的service选项或route选项页面,添加plugin设置:
按照上述配置完毕后,即可进行功能的测试验证了
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插件成功拦截到了我们配置的url请求,能够正常拦截切输出我们预期的结果,则可说明嵌入的lua脚本(插件)生效。
可通过该流程进行插件的开发测试