本文大部分并未直接给出下载连接或者命令,而是官网的教程链接
假如按照官网的教程出了问题,看本文的经验分享就行了,让你少走很多弯路,假如文章有用,欢迎点赞收藏!
我本机的环境:
windows物理机 + linux centos虚拟机。
本文介绍两种KONG UI的使用。一种是Kong-Dashboard。一种是konga。
Kong-Dashboard的版本控制:
Kong-Dashboard versions | Kong versions | Node versions |
---|---|---|
1.x.x | >= 0.6, < 0.10 | |
2.x.x | 0.10 | |
3.0.x | >= 0.9, <0.12 | >= 6.0.0 |
3.1.x, 3.2.x | >= 0.9, <0.13 | >= 6.0.0 |
3.3.x, 3.4.x | >= 0.9, <0.14 | >= 6.0.0 |
3.5.x | >= 0.9, <0.15 | >= 6.0.0 |
3.6.x | >= 0.9, <2.0.0 | >= 6.0.0 |
konga的版本控制:
Compatibility
From 0.14.0 onwards, Konga is ONLY compatible with Kong 1.x
If you're on an older Kong version , use this branch or
konga:legacy
from docker hub instead.Prerequisites
- A running Kong installation
- Nodejs >= 8, <= 12.x (12.16 LTS is recommended)
- Npm
根据两种UI的版本控制,本教程选择kong的版本为1.0,postgresql的版本为9.6,nodejs版本为12。
目录
三、安装Kong Dashboard (kong的UI管理)(可视化管理)
步骤一、安装之前需要先安装nodejs。因为可视化管理nodejs开发。
一、首先安装postgresql数据库。
步骤一、官方的安装教程。
https://www.postgresql.org/download/linux/redhat/
我遇到的问题:
1.系统CA证书的问题,以及yum使用不了https源。
2.yum下载安装rpm时候,直接报无法下载。
问题一的解决方案:
问题二的解决方案
可以使用wget下载rpm,假如你是linux虚拟机,可以使用filezila在物理机下载之后,在上传给linux也行。
# 在下载的rpm包存放的目录执行以下语句
rpm -ivh rpm包的名字
步骤二、配置postgresql
初始化数据库之后,会自动为linux系统创建一个postgres用户,同时postgresql数据库还有一个默认的postgres用户。
首先,修改PostgreSQL数据库默认用户postgres的密码
#以postgres身份登录
sudo -u postgres psql
#修改密码
ALTER USER postgres WITH PASSWORD 'postgres';
#退出客户端
\q
其次,修改linux下postgres用户的密码
#删除用户postgres的密码
sudo passwd -d postgres
#设置用户postgres的密码
sudo -u postgres passwd
在kong的默认配置中用的是postgr的kong数据库和kong用户。
所以我们还可以给数据库配置其他的用户以及新建一个数据库
1.创建一个名叫kong的linux用户
#登录到root用户 su root # 添加kong用户 sudo adduser kong # 可选 为kong系统用户设置密码 #sudo passwd kong
2.为postgresql创建用户和数据库
#创建kong账户 -e并配置为超级管理 createuser -s -e kong #创建编码为utf-8的kong数据库 并把所有者设置为kong createdb -E UTF8 -O kong kong
3.为新创建的这个kong用户,设置密码
#切换到postgres linux用户 su postgres #登录到postgresql数据库客户端 psql #设置kong的密码 ALTER USER kong WITH PASSWORD 'kong'; #离开数据库 \q
步骤三、配置远程控制
修改vi /var/lib/pgsql/9.6/data/postgresql.conf文件,配置可以远程访问(正式环境按照白名单正确配置)
将listen_addresses前的#去掉,并将 listen_addresses = 'localhost' 改成 listen_addresses = '*';
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
# 放开IP的限制
listen_addresses = '*' # what IP address(es) to listen on;
修改客户端认证配置文件 vi /var/lib/pgsql/9.6/data/pg_hba.conf
将IPv4区下的127.0.0.1/32修改为0.0.0.0/0; 将ident修改为md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
#host replication all 127.0.0.1/32 ident
#host replication all ::1/128 ident
二、安装kong
假如需要用到kong的UI管理界面,也就是kong-dashboard,kong的版本不能过高。1版本以下。
下面我介绍三种kong的安装方法,以及kong的卸载方法。
步骤一、kong的卸载
假如你之前有安装过kong,需要先卸载掉kong以及kong的目录,下边是三种不同的kong版本卸载方式,自己找自己的吧
yum remove kong
yum remove kong.comm(命令补全)
yum remove kong.noar(命令补全)
删除kong的目录(三个地方都要删除掉)
rm -rf /etc/kong
rm -rf /usr/local/kong
#这个lua的版本 可能跟你不一样 换成自己的版本
rm -rf /usr/local/share/lua/5.1/kong/
步骤二、kong的安装
方式一:官网的链接,此方法下载的是最新版本的kong。注意:此方法会安装最新版的空。kong-Dashboard高版本不兼容
按照 If you are using the repository, execute 教程进行安装!
https://docs.konghq.com/install/centos/
方式二:通过yum方式
yum install epel-release
#linux有命令提示语句的。输入到kong之后 按tab键 有时候也会自动补全kong.noarch
yum install kong.noarch
方式三:通过rpm方式
下载方式:
[1]inux系统直接通过wget下载:(可以换成自己想要的版本)
wget https://bintray.com/kong/kong-rpm/download_file?file_path=centos/7/kong-1.1.2.el7.noarch.rpm
[2]使用物理机:
- 点击链接:https://bintray.com/kong/kong-community-edition-rpm/centos
- 找到自己喜欢的版本:
- 下载之后 上传到linux系统。
安装方式:
#安装下载好的rpm,通过yum安装,可以帮助你解决包的依赖关系
yum localinstall 你的rpm包
步骤三、kong的配置
#进入kong配置文件目录
cd /etc/kong/
#拷贝默认的配置到新建的kong.conf
cp kong.conf.default kong.conf
#编辑配置
vim /etc/kong/kong.conf
#在这个文件里 你会发现kong的默认配置中有名为kong数据库和kong账号。
#我们之前配置过kong数据和账户了。所以这里用kong
# 修改数据库配置
database = postgres # Determines which of PostgreSQL or Cassandra
pg_host = 127.0.0.1 # The PostgreSQL host to connect to.
pg_port = 5432 # The port to connect to.
pg_user = kong # The username to authenticate if required.
pg_password = 你自己的kong的密码 # The password to authenticate if required.
pg_database = kong # The database name to connect to.
步骤四、在数据库Kong中创建需要的表
kong migrations up [-c /path/to/kong.conf]
#高版本使用以下命令
#kong migrations bootstrap [-c /path/to/kong.conf]
步骤五、启动kong,假如你用的账号没有权限的话,需要自己配置权限
kong start [-c /path/to/kong.conf]
# 非root权限用户启动方式
#chmod -R 777 /usr/local/kong
#chmod -R 777 /usr/local/share/lua/5.1
步骤六、验证kong启动成功
curl -i http://localhost:8001/
三、安装Kong Dashboard (kong的UI管理)(可视化管理)
步骤一、安装之前需要先安装nodejs。因为可视化管理nodejs开发。
yum install nodejs 我安装出现了问题。所以我直接通过下载,并配置path路径的方式进行安装。
nodejs的官方下载地址,选择linux版本。https://nodejs.org/en/download/
# 下载完成之后,是个以xz结尾的压缩包,需要先通过命令生成tar文件
# 例如我的配置版本
xz -d node-v12.18.4-linux-x64.tar.xz
# 解压缩
tar xf node-v12.18.4-linux-x64.tar
下载安装完nodejs之后,配置path路径
# 打开path
vim /etc/profile
# 在里面配置上自己的nodejs目录就可。以下是我的配置
export NODE_PATH=/opt/node-v12.18.4-linux-x64/bin
export PATH=$PATH:$NODE_PATH
简单介绍下 path路径的问题
export NODE_PATH 是自定义了一个目录 可以随便写。
假如你需要用到某个路径了。需要使用$符号。比如需要使用NODE_PATH路径,则$NODE_PATH
路径和路径之间的分割使用 ":" 使用冒号分割,例如上面例子中的$PATH:$NODE_PATH
步骤二、Kong Dashboard 的安装。
官网教程:选择使用NPM的方式就行了
https://github.com/PGBI/kong-dashboard/tree/e93365a92eb3e58273a245c1023cc3d28774b5a3
# Using npm
# Install Kong Dashboard
npm install -g kong-dashboard
#下边的启动方式 选择自己需要的进行启动
#启动成功之后 浏览器输入kong/8080 或者 localhost:8080 就可以访问到了
# Start Kong Dashboard
kong-dashboard start --kong-url http://kong:8001
# Start Kong Dashboard on a custom port
kong-dashboard start \
--kong-url http://kong:8001 \
--port [port]
# Start Kong Dashboard with basic auth
kong-dashboard start \
--kong-url http://kong:8001 \
--basic-auth user1=password1 user2=password2
# See full list of start options
kong-dashboard start --help
遇到的问题:
问题一:npm安装使用https时 报错
npm ERR! code SELF_SIGNED_CERT_IN_CHAIN
问题二:npm安装太慢
问题三:
Connecting to Kong on http://kong:8001 ...
Could not reach Kong on http://kong:8001
Error details:
Error: getaddrinfo ENOTFOUND kong
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26) {
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'kong'
}解决办法:
问题一:先执行这个命令 npm config set strict-ssl false
问题二:设置国内镜像源 npm install -g cnpm --registry=http://registry.npm.taobao.org
问题三:这条报错里可以看到kong这个域名找不到,猜测是没有配置上。这里直接把kong换成localhost。
kong-dashboard start --kong-url http://localhost:8001
四、konga的安装
步骤一、安装nodejs,同上。
步骤二、安装konga
# 以下为开发环境的配置
git clone https://github.com/pantsel/konga.git
cd konga
#按照官方教程,需要先创建一个.env文件进行环境的配置。我的配置文件内容如下
PORT=1337
NODE_ENV=development
KONGA_HOOK_TIMEOUT=120000
DB_ADAPTER=postgres
DB_URI=postgresql://kong:kong@localhost:5432/kong
KONGA_LOG_LEVEL=info
#TOKEN_SECRET=some_secret_token
#安装依赖
cnpm i
#启动konga
cnpm start
步骤三、验证
访问 http://localhost:1337
大功告成!
遇到的问题:
问题一:中间遇到了一个grunt 的提示错误。
解决办法:
问题一:执行
cnpm install -g grunt-cli