ubuntu部署kong以及安装Kong Dashboard

2024-06-07 09:32

本文主要是介绍ubuntu部署kong以及安装Kong Dashboard,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近研究网关,网关是主要统一出口、权限管理等功能,之前自己使用openresty根据项目需求自己写了一个网关,最近打算升级网关,所有研究了两天的kong,记录一下kong的部署流程。

 

为什么使用API-Gateway

1. 方便客户端维护– 每个请求方不用管理多个api url,统一访问api-gateway即可
2. 接口重构时调用方不须了解接口本身等拆分和聚合
3. 客户端无须关心接口协议
4. 统一权限控制、接口请求访问日志统计
5. 安全,是保护内部服务而设计的一道屏障

      当然也有一个很大的缺点,api-gw很可能成为性能瓶颈,因为所有的请求都经过这里,可以通过横向扩展和限流解决这个问题。

  在众多API GATEWAY框架中,Mashape开源的高性能高可用API网关和API服务管理层——KONG(基于NGINX)特点尤为突出,它可以通过插件扩展已有功能,这些插件(使用lua编写)在API请求响应循环的生命周期中被执行。于此同时,KONG本身提供包括HTTP基本认证、密钥认证、CORS、TCP、UDP、文件日志、API请求限流、请求转发及NGINX监控等基本功能。目前,Kong在Mashape管理了超过15,000个API,为200,000开发者提供了每月数十亿的请求支持。

  Kong是一款基于Nginx_Lua模块写的高可用,由于Kong是基于Nginx的,所以可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。

 

Kong主要有三个组件:

  • Kong Server :基于nginx的服务器,用来接收API请求。
  • Cassandra/PostgreSQL :用来存储操作数据。
  • Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api

安装PostgreSQL 

对于postgreSQL网上有关文档说要使用9.5以上版本,建议使用最新版本,本人使用的9.5版本。

添加一个非官方源

sudo vim /etc/apt/sources.list.d/pgdg.list
# 添加以下内容
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main

导入key,刷新

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \sudo apt-key add -
sudo apt-get update

安装

sudo apt-get install postgresql-9.5

配置

(1)修改配置文件postgresql.conf

sudo vim /etc/postgresql/9.5/main/postgresql.conf 

需要修改的内容如下

listen_addresses = '*'password_encryption = on

(2).修改配置文件pg_hba.conf

sudo vim /etc/postgresql/9.5/main/pg_hba.conf

需要修改的内容如下,尾部加上

host all all 0.0.0.0 0.0.0.0 md5

(3)重启postgresql

sudo service postgresql restart

(4) 修改口令
安装过程中,系统已经添加了postgres的用户,并且这个用户的环境变量都设置好了,命令行工具很丰富.

sudo passwd postgres

然后切换到用户,修改postgre数据库的密码

su - postgres

(5) 建立数据库给kong用

psql postgres psql 

先创建用户

CREATE USER kong_user WITH PASSWORD 'kong_pass'; 

创建数据库,并给用户授权

create database "kong_db"; GRANT ALL PRIVILEGES ON DATABASE "kong_db" to kong_user;

至此,数据库准备完毕,当然还有另外一个选择Apache Cassandra
 

部署kong

安装之前先保证如下软件安装

sudo apt-get install netcat openssl libpcre3 dnsmasq procps

在https://getkong.org/install/ubuntu/下载最新的kong的deb安装包,然后

sudo dpkg -i kong-0.8.3.*.deb


配置kong
kong的配置相对简单,我这里只是简单的配置了数据库.

sudo vim /etc/kong/kong.conf 

ps:部署好之后会生成 kong.conf.default,可以修改之后进行修改,

数据库准备

按照上述postgresql安装,已经准备好存储,现在需要执行kong migrations来初始化数据库表

$ kong migrations up

这里我没有指定配置文件,使用的都是kong默认的配置,也可以指定自定义配置文件

#kong.conf的路径,默认是/etc/kong/kong.conf
$ kong migrations up [-c /path/to/kong.conf]

kong的默认表已经创建好了。

 

#默认kong插件在如下目录,自定义插件后续加在这里

cd /usr/local/share/lua/5.1/kong/plugins/

#启动kong,这里没有用到nginx-kong.conf

$ kong start [-c /path/to/kong.conf]

#停止kong

$ kong stop
$ kong start

#使用kong

curl -i http://localhost:8001/

接口接入kong测试

# 原接口

访问上海天气预报的接口 :https://www.sojson.com/open/api/weather/json.shtml?city=上海

#接口注册kong

curl -i -X POST   --url  http://localhost:8001/apis/   --data 'name=weather-api'   --data 'hosts=www.sojson.com'   --data 'upstream_url=https://www.sojson.com/open/api/weather/json.shtml'

name是全局唯一,后续对注册接口的插件修改都可以用到,host放在header里指定,upstream_url是转发的真实的下游接口

 

注册成功,则pg数据库的apis表会添加一条记录

#通过kong访问此天气接口

curl -i -X GET --url http://localhost:8000?city=上海 --header 'Host: www.sojson.com'

kong实现了接口转发~

注意注册时,’hosts’, ‘uris’ or ‘methods’三个参数至少有一个必须指定

 

安装kong-dashboard

1、安装node与npm

sudo apt install nodejs-legacy
sudo apt install npm

升级npm为最新版本

sudo npm install npm@latest -g

 

安装用于安装nodejs的模块n

sudo npm install -g n

然后通过n模块安装指定版本的nodejsn模块更多介绍请参考官方文档

//安装官方最新版本
sudo n latest
//安装官方稳定版本
sudo n stable
//安装官方最新LTS版本
sudo n lts

我们通过安装稳定版本的nodejs,然后通过node -v可以发现node安装成功

2、安装kong dashboard

npm install -g kong-dashboard

启动:

kong-dashboard start --kong-url http://localhost:8001 --port 8088

最后访问:

 

 

这篇关于ubuntu部署kong以及安装Kong Dashboard的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1038798

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优