kong网关自身的管理界面属于付费的应用,而第三方界面又非常少,konga算是相对比较好的一款了,虽然也有一些问题,但整体的功能还比较全,github仓库为:https://github.com/pantsel/konga,konga支持两种方式部署分别是docker和nodejs原生部署,下面将依次写一下

不管哪种方式部署,都推荐将相关的信息持久化,建议生产环境使用数据库保存信息,我们这里和kong一样统一使用postgresql来保存配置信息,下面分为3步来叙述:分别是数据库设置、docker方式运行、nodejs原生方式运行,注意运行方式只能选1种,不能两种方式都用

1. 数据库设置

首先登录进postgresql交互控制台,然后执行下面的语句创建konga的数据库并授权用户:

CREATE ROLE konga LOGIN PASSWORD 'konga123456';
CREATE DATABASE konga OWNER konga;

这里创建的数据库:konga,用户:konga,密码:konga123456

然后编辑pgsql数据目录下的pg_hba.conf设置用户访问权限:

host    konga           konga           0.0.0.0/0                     md5

因为可能待会docker方式启动的时候由于容器内的ip和外面不相同,避免连接pgsql被拒绝,因此CIDR这里设置0.0.0.0/0临时允许全部的来源访问,保存配置后,重启postgresql服务,数据库配置完毕

2. docker方式运行konga

为了提高拉取镜像的速度,可以配置国内的docker镜像源,比如网易的,这个设置不再详细叙述;另一种方法可以为docker设置代理访问也可以加快速度,首先设置环境变量:

export http_proxy=http://192.168.0.112:1080
export https_proxy=http://192.168.0.112:1080

然后在docker启动时直接添加参数--http-proxy=true即可自动使用环境变量中的代理,默认这个参数是false

上面是设置代理的方式,可以选择性使用,使用下面的命令可以启动一个不依赖数据库的容器:

docker run -p 1337:1337  --name konga  -e "NODE_ENV=production" --http-proxy=true  pantsel/konga

第一次运行会自动去镜像源拉取镜像,然后启动容器,之后再启动就不需要再加--http-proxy参数了,也可以通过本地运行的容器中恢复: docker start <容器ID> ,上面这种方式启动是将配置保存到了文件中,如果本地的容器删除了,下次再从镜像启动的时候所有数据都没有了,会非常麻烦,因此选择使用外部的postgresql数据库,使用之前需要先初始化数据库,命令如下:

docker run pantsel/konga -c prepare -a postgres -u postgresql://konga:konga123456@192.168.28.128:5432/konga

执行完之后可以发现所有的数据表都创建好了,然后启动容器:

docker run -p 1337:1337 -e "TOKEN_SECRET=699a85ee59a1" -e "DB_ADAPTER=postgres" -e "DB_HOST=192.168.28.128" -e "DB_PORT=5432" -e "DB_USER=konga" -e "DB_PASSWORD=konga123456" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga pantsel/konga

其中TOKEN_SECRET是一串密钥,可以自己随机生成,其余的都是数据库的配置,如果感觉上面这个参数太多也可以直接使用参数DB_URI指定一个全的url即可,和初始化数据库那个类似;另外如果刚才用konga名称启动过容器,可能再次启动会报错name已经存在,需要先执行: docker rm <容器ID> 删除刚才的容器,然后再运行即可,容器正常启动后,就可以访问浏览器,访问:http://<ip>:1337,即可打开初始的页面:

然后填写用户名、邮件、密码信息,点击CREATE ADMIN,创建管理账户,然后会自动跳转到登录界面,这里可能会存在一个bug就是页面没有跳转成功怎么刷新都是空白,这种情况下可以尝试Ctrl+F5强制刷新页面或者是直接清空最近的记录、cookie等再次刷新页面即可进入登录界面,我自己测试是83一下的chrome内核会有这个问题,而84以上的不会有,这是konga本身的一个问题,如果碰到了注意一下

然后输入用户名和密码,登录管理系统即可

默认会提示输入kong admin api的url,正常输入然后创建连接即可,然后就可以看到完整的管理模块了,需要注意的是默认情况下kong admin api为了保证安全,监听的网卡为127.0.0.1,需要在配置文件中改成实际的网卡ip,这样这里才可以连接成功,不过这样又引入新的安全问题,要解决这个问题可以采用kong的自校验完成,这类不再详细说了,很简单,可以自己探索配置一下

3. nodejs方式运行konga

最后一种方式是使用nodejs直接在系统上运行konga,首先要安装nodejs相关的包:

yum install nodejs

安装之后就有了npm相关的工具,然后克隆kong的源码:

git clone https://github.com/pantsel/konga.git
cd konga

当然也可以自行去github下载指定版本的源码包,上传到服务器上使用也一样,然后自动下载相关的依赖:

npm i

如果依赖下载超时或者失败,同样也可以配置代理来提速,默认的npm包注册url是:https://registry.npmjs.org,所以只需要配置一下https代理即可:

npm config set https-proxy http://192.168.0.112:1080
# 查看代理配置
npm config get

然后即可开始下载,完成之后会有提示:

提示的这些漏洞可以暂时不关心,现在代理就算用完了,可以删除一下:

npm config delete https-proxy

除了设置代理的方式,也可以使用国内的npm源,比如阿里云的,但是这个我自己没有测试,先放个链接:https://developer.aliyun.com/mirror/NPM?from=tnpm

然后可以执行命令开始初始化数据库,注意数据库和用户要先按照第一步进行创建和授权,然后执行下面命令初始化数据库:

node ./bin/konga.js prepare --adapter postgres --uri postgresql://konga:konga123456@192.168.28.128:5432/konga

默认运行的时候读取的配置文件是:.env,可以配置比如绑定地址和端口,数据库连接等配置,默认当前目录下存在一份.env_example,可以拷贝出来: cp .env_example .env ,然后按照实际的配置进行修改,我这里配置如下:

PORT=1337
NODE_ENV=production
KONGA_HOOK_TIMEOUT=120000
DB_ADAPTER=postgres
DB_URI=postgresql://konga:konga123456@192.168.28.128:5432/konga
KONGA_LOG_LEVEL=warn
TOKEN_SECRET=some_secret_token

配置完成之后保存,注意DB_URI中用户名密码等要写全,其他的配置项就不用再配置了,否则会出现很多麻烦的用户错误问题,konga这里处理的非常糟糕,吐槽一下参数配置真是太烂了O(∩_∩)O,最后执行下面的命令启动konga:

npm run production
# 或者是
npm start

然后可以打开浏览器测试访问,如果出现上面的问题仍然尝试清空的缓存来解决,如果还是不行可以尝试运行下面的命令补充依赖:

npm run bower-deps

补充完依赖后再次启动尝试,上面两个命令都试一下,一般就可以了,然后登录页面,连接kong admin api,其他的操作都一致了

上面就是konga的两种安装运行方式,极力推荐使用docker运行,而本地的方式运行可能会出现一些莫名其妙的问题需要花费时间调试,docker的方式可维护性更好,如果有其他问题,欢迎交流~

kong管理界面konga的安装的更多相关文章

  1. KAFKA 监控管理界面 KAFKA EAGLE 安装

    概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...

  2. ##7.Dashboard web管理界面-- openstack pike

    ##7.Dashboard web管理界面 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##.Dashboard ...

  3. 【k8s部署kong一】kong k8s 安装 以及可视化管理界面

    官方安装:https://getkong.org/install/kubernetes/ 扩展讲解:https://blog.fleeto.us/post/intro-kong/ 提示:本文是在k8s ...

  4. 网关服务Kong和konga介绍安装使用教程

    介绍 Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用.易扩展的,由Mashape公司开源的API Gateway项目.Kong是基于NGINX和Apache Cassa ...

  5. Linux安装完Tomcat后无法登陆管理界面

    今天在Linux中安装完Tomcat后无法登陆Tomcat的管理界面,也就无法利用Tomcat管理界面来部署项目. 在Windows中一般配置完Tomcat后,只要在[conf]目录下的“tomcat ...

  6. Solr7 安装部署 管理界面介绍

    Solr7 安装部署 管理界面介绍 本章重点介绍CentOS 安装部署Solr7 ,Solr的管理界面介绍,添加核心Core配置,Dataimport导入数据,Documents 在线维护索引,Que ...

  7. windows环境下安装rabbitmq及配置可视化管理界面

    1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...

  8. openWrt 安装管理界面luci中文包

    openWrt15安装管理界面luci中文包   如果刚刷的openwrt15没有中文界面,用ssh连接路由后用opkg安装     root@bang-bang-tang:~# opkg insta ...

  9. 小贝_redis web管理界面工具安装

    RedisWEB管理界面工具安装 一.概述 二.文件下载 三.安装过程 一.概述 1.因为redis是基于C/S的方式开发.也就是说,仅仅要满足于redis的client通信要求的,都能够作为redi ...

  10. RabbitMQ Server安装及显示管理界面Installing on Windows

    接上一篇文章,继续讲解 文件很小, 1.下载路径:http://www.rabbitmq.com/download.html 2.运行rabbitmq-server-3.6.5.exe,选择要安装的目 ...

随机推荐

  1. Springboot+POI实现excel生成下载进阶版(单元格合并,多Sheet,各种样式处理)

    上周五来了新的需求,基本上我写的还款那一系列流程不要了(我好悲伤,当时写了很久的,逻辑复杂的写的我很骄傲),新的变成如上所示(仅仅一部分),勾选几笔后生成一个excel表格,不同的融资编号所引发的那堆 ...

  2. gitee的 私人令牌 就是 Gitee Open API 的 access_token

    gitee的 私人令牌 就是 Gitee Open API 的 access_token

  3. vscode 点左下角 切换分支 不显示远程分支 git

    查看当前分支 git branch -vv 查看所有分支 包含远程分支 git branch -a 放弃merge // 这个很重要 git merge --abort 暂存 git stash 拉取 ...

  4. vscode git冲突 1. git stash 2. 更新代码 3. git stash pop 4.提交代码

    vscode git冲突 1. git stash 2. 更新代码 3. git stash pop 4.提交代码

  5. Educational Codeforces Round 141:B. Matrix of Differences

    一.来源:Problem - B - Codeforces 二.题面 三.思路 我们先从一维思考如何构造尽可能多的数值差.以n=2为例,此时有1,2,3,4数,其中构成差值为3的方案有一个1,4,构成 ...

  6. 11_使用SDL播放WAV

    使用命令播放WAV 对于WAV文件来说,可以直接使用ffplay命令播放,而且不用像PCM那样增加额外的参数.因为WAV的文件头中已经包含了相关的音频参数信息. ffplay in.wav 接下来演示 ...

  7. TP6框架--EasyAdmin总结:暂时的离别和新的开始

    眨眼一下,因为项目初期开发的完成,我与EasyAdmin的缘分也将迎来短暂的离别,有时候静下来,感觉时间过的好快,我从4月到现在,使用EasyAdmin进行项目开发,从一个初识别PHP的菜鸟,到一个能 ...

  8. Advanced .Net Debugging 5:基本调试任务(线程的操作、代码审查、CLR内部的命令、诊断命令和崩溃转储文件)

    一.介绍 这是我的<Advanced .Net Debugging>这个系列的第五篇文章.今天这篇文章的标题虽然叫做"基本调试任务",但是这章的内容还是挺多的.上一篇我 ...

  9. WPF自定义Panel:让拖拽变得更简单

    在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分.通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件从一个容器移动到另一个容器.然而,WPF 中默认的拖放操作可能并不 ...

  10. 一行代码 python 证件照换底色

    安装所需模块 pip install OpenCV-python pip install cvzone pip install mediapipe 代码 import cv2 import cvzon ...