kong配置service和route实现简单API代理

目录

  • 通过konga连接kong实现API接口代理

    • 1. ADD NEW SERVICE
    • 2. ADD ROUTE
    • 3. 验证API 代理
      • 浏览器验证
      • 请求kong api
  • kong使用Admin API实现接口代理

通过konga连接kong实现API接口代理

前言

之前已经对Kong的API做了学习理解,从本文开始,我们将学习如何使用KONG实现API接口代理。为此,您首先需要添加服务;即Kong用来指代其管理的上游API和微服务的名称。

本文中,我们将创建一个指向Mockbin API的服务进行学习测试。

1. ADD NEW SERVICE

[SERVICE]:
抽象层面的服务,他可以直接映射到一个物理服务 (host 指向 ip + port),也可以指向一个 upstream 来做到负载均衡。通俗说,这个service就是后台访问接口配置。

导航到SERVICES页面并添加ADD NEW SERVICE

字段说明

Url参数是一个简化参数,用于一次性添加protocol,host,port和path。另外不要把SERVICE当作后端的具体API,要把它当作一个大的服务,该服务下面有多个API(endpoint or route)。所以创建服务的时候填上该服务的域名就行了。当然也可以是一个带pathUrl,这样每个关联的API (ROUTE)会路由到该path上。

属性 描述
name(必填) 服务名称.
tags(可选) 可选地向服务添加标记
url(可选) 将协议、主机、端口和路径立即设置成简短的属性。这个属性是只写的(管理API从来不“返回”url)
protocol(必填) 该协议用于与upstream通信。它可以是http(默认)或https。
host(必填) upstream服务器的主机。
port(必填) upstream服务器端口。默认为80
path(可选) 在向upstream服务器请求中使用的路径。默认为空。
retries(可选) 在代理失败的情况下执行的重试次数。默认值是5。
connect_timeout(可选) 建立到upstream服务器的连接的超时时间。默认为60000。
write_timeout(可选) 将请求发送到upstream服务器的两个连续写操作之间的超时时间。默认为60000。
read_timeout(可选) 将请求发送到upstream服务器的两个连续读取操作之间的超时时间。默认为60000。


添加成功返回SERVICES界面,查看添加的Services信息,两种查看方式:

2. ADD ROUTE

[ROUTE]:
路由的抽象,他负责将实际的 request 映射到 service

返回SERVICES界面,选择example-service服务

选择Routes,然后ADD ROUTE

字段说明:

属性 描述
name(可选) 定义名称
tags(可选) 向路由添加标记
protocols(可选) 这条路线应该允许的协议列表。默认情况下,它是“http”、“https”,这意味着路由接受这两种方式。当设置为“HTTPS”时,HTTP请求会被请求升级到HTTPS。通过表单编码,符号是协议=http&协议=https。使用JSON,使用数组。
methods(半可选) 与此路由相匹配的HTTP方法列表。例如: ["GET", "POST"].至少有一个主机、路径或方法必须被设置。用表单编码参数是methods[]=GET&methods[]=OPTIONS。使用JSON,使用数组。
hosts(半可选) 与此路径匹配的域名列表。例如:example.com. 至少有一个主机、路径或方法必须被设置。用表单编码参数是 hosts[]=foo.com&hosts[]=bar.com。使用JSON,使用数组。
paths(半可选) 与此路径相匹配的路径列表。例如: /my-path.至少有一个主机、路径或方法必须被设置。用表单编码参数是 paths[]=/foo&paths[]=/bar. 使用JSON,使用数组。
Regex priority(可选) 当多个路由同时使用正则表达式匹配某个给定请求时,用来选择哪个路由解析该请求的数字。当两个路由匹配路径并且具有相同的regex_优先级时,将使用较旧的路由(最低创建位置)。注意,非regex路由的优先级不同(较长的非regex路由在较短的路由之前匹配)。默认为0。
strip_path(可选) 当通过其中一条路径匹配路由时,从上游upstream请求URL中去掉匹配前缀。默认值为true。
preserve_host(可选) 当通过一个主机域名匹配一条路由时,在upstream请求头中使用请求主机头。默认设置为false,upstream主机头将是服务主机的主机头。


添加成功返回SERVICES界面,点击Routes,查看路由。
又或者,可以从左侧ROUTES导航进入查看路由。

3. 验证API 代理

浏览器验证

Kong API需要通过Routes规则中配置的hosts or path对请求进行API调度控制。

由于我们Routes规则中配置的hosts是虚拟域名,因此,我们需要在本地及服务器hosts列表中添加dns解析,这样在浏览器才可以携带host请求信息去正常访问Kong API。

“WIN +R 输入drivers”,调出hosts`

10.122.45.97 test.example.com

请求kong api

$ curl -i -X GET   --url http://localhost:8000/request   --header 'Host: test.example.com'

kong使用Admin API实现接口代理

请参阅官方文档

?
[sleepy↓]

?

原文地址:https://www.cnblogs.com/sunhongleibibi/p/12024386.html

时间: 2024-10-25 10:40:22

kong配置service和route实现简单API代理的相关文章

Update-Package : Unable to load the service index for source https://api.nuget.org/v3/index.json.

由于更改了项目"属性"的"目标框架"(原来的框架是".NET Frameword4.5"改为了".NET Frameword4") 提示错误 一些 NuGet 程序包是使用不同于当前目标框架的目标框架安装的, 可能需要重新安装.有关详细信息, 请访问 http://docs.nuget.org/docs/workflows/reinstalling-packages. 受到影响的程序包.... 我的是VS 2015 社区版..

struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:) --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next) --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Fi

HDFS基本命令行操作及上传文件的简单API

一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据存储位置 <property> <name>dfs.namenode.name.dir</name> <value>/root/hd/dfs/name</value> </property> //配置数据存储位置 <property

Ubuntu12.04在无网络环境下配置apt-get光盘源的简单方法

许多数据库服务器是不能连上internet,想更新安装包就比较麻烦. 通常可以先在有internet环境的计算机上下载deb包,在拷贝到服务器安装deb,这样很难处理包的依赖关系. apt-get可以解决包的依赖关系,但是默认配置下需要从internet下载包,如果可以从本地读取安装源就可以解决包的依赖关系和无internet的问题. 步骤参考: 1.把光盘插入光驱,并且挂载到本地: mount /dev/cdrom  /mnt 2.备份后修改source.list仓库配置文件: mv /etc

Visual Studio 2015 NuGet Update-Package 失败/报错:Update-Package : Unable to load the service index for source https://api.nuget.org/v3/index.json.

起因 为了用VS2015 community中的NuGet获取Quartz,在[工具]-[NuGet包管理器]-[程序包管理器控制台]中执行 Install-Package Quartz. 却报如下错误: Update-Package : Unable to load the service index for source https://api.nuget.org/v3/index.json. 复制该网址到浏览器中,确实无法打开. 解决方法 经网上搜集资料,得知替换source即可.将原Nu

用srvctl命令配置service

.用srvctl命令配置service 除了用DBCA图形方式,还能够使用命令方式配置service,这样的方法对于维护远程尤事实上用.不管是创建还是维护都是用一个命令srvctl,先看一下srvctl命令和service相关的语法.例如以下: 创建service [[email protected] ~]$ srvctl add service -h Usage: srvctl add service -d <name> -s<service_name> -r "<

tomcat配置及基于nginx、apache反向代理tomcat

如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求.我们需要一个交互式的Web,于是便诞生了各种Web语言.如Asp,Jsp,Php等.当然,这些语言与传统的语言有着密切的联系,如Php基于C和C 语言,Jsp基于Java语言.Tomcat即是一个Jsp和Servlet的运行平台. Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新

nginx简单反向代理和负载均衡(ubuntu)

nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.130),u3(192.168.240.131)代表三台虚拟机 简单的反向代理配置:(u1反向到u2) u1的配置: server { listen 80 default_server; server_name  a.jh.net; index index.html index.php root /ho

nginx配置跨域、gzip加速、代理详细讲解

1.配置跨域 这个很简单,直接打开配置nginx.conf ,在http下配置下面三行代码:当然如果你是想某一个虚拟主机下跨域,那就在哪个server下面添加 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; 2.配置gzip,压缩访