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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP