默认情况下, KONG 监听下面几个端口:

  • 8000   这个端口用于监听客户端的 HTTP 请求,并转发给上游服务
  • 8443   这个端口用于监听客户端的 HTTPS 请求,并转发给上游服务
  • 8001   用于接收配置 KONG 的 Admin API
  • 8444   功能同 8001,只是这个端口接收的是 HTTPS 请求

普通服务:

1. 为 http://mockbin.org 添加一个名为 example-service 的服务。

$ curl -i -X POST \
--url http://localhost:8001/services/ \
--data 'name=example-service' \
--data 'url=http://mockbin.org'

2. 为上面创建的服务添加一个路由

$ curl -i -X POST \
--url http://localhost:8001/services/example-service/routes \
--data 'hosts[]=example.com'

这样就配置完成了一个代理服务,通过访问 KONG 的 example.com ,KONG 会把请求转发到 http://mockbin.org。

注意: /services/ 后面的 example-service 需要和第1步中的 --data 'name=' 的值要一样。

3. 运行下面的命令,会返回 http://mockbin.org 的信息。

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

注意: 这里 --header 'Host: ' 的值要和第2步中的 --data 'hosts[]=' 的值要一样。

通常,我们都会对提供的服务进行授权认证。KONG 提供了 key-auth 插件,可以实现认证的功能。

添加认证

4. 配置 key-auth 插件

$ curl -i -X POST \
--url http://localhost:8001/services/example-service/plugins/ \
--data 'name=key-auth'

此时,我们再次运行 3 中的命令,会得到类似如下的结果:

HTTP/1.1 401 Unauthorized
... {
"message": "No API key found in request"
}

5. 添加一个消费者

$ curl -i -X POST \
--url http://localhost:8001/consumers/ \
--data "username=Jason"

6. 为上面的用户添加一个 key。下面命令中的 “ENTER_KEY_HERE” 需要替换成想要设置的密钥。

$ curl -i -X POST \
--url http://localhost:8001/consumers/Jason/key-auth/ \
--data 'key=ENTER_KEY_HERE'

7. 在第3步的请求中添加 key 的信息后,可以正常访问了。命令如下:

$ curl -i -X GET \
--url http://localhost:8000 \
--header "Host: example.com" \
--header "apikey: ENTER_KEY_HERE"

KONG -- 配置 service 并添加 key-auth的更多相关文章

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

    目录 通过konga连接kong实现API接口代理 1. ADD NEW SERVICE 2. ADD ROUTE 3. 验证API 代理 浏览器验证 请求kong api kong使用Admin A ...

  2. Kong配置参考

    kong配置的官网说明:https://docs.konghq.com/1.0.x/configuration/ 1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件 ...

  3. 配置GitHub的SSH key

    配置GitHub的SSH key 生成密钥对 打开git bash工具(Windows环境),Linux则直接打开命令行,执行下面的命令生成密钥文件 ssh-Keygen -t rsa -C &quo ...

  4. spring boot配置service发布服务

    在application.yml中配置 server: port: 8080 context-path: /crm spring: datasource: driver-class-name: com ...

  5. 配置github的SSH key及GitHub项目上传方式一——使用终端命令行

    GitHub是一个开源的大仓库,我们经常从github上下载项目进行学习和研究,下面是一个完整的步骤——往GitHub上传一个新项目. 一.注册GitHub账号 1.注册GitHub账号,地址:htt ...

  6. kong配置upstream实现简单的负载均衡

    目录 通过konga实现 1. 配置upstream 2. 配置Service发布 3. 配置Route,匹配规则 4. 验证结果 通过 Kong Admin API实现 1. 配置upstream ...

  7. git配置多个ssh key

    随着工作的深入,我们通常都会有多个git账户.比如公司gitlab一个账户,github或gitee有一个账户.而平时我们又回通过 配置ssh公私钥认证的方式省去繁琐的登录远程仓库的操作,不同的git ...

  8. Service 中添加同步块防止并发 重复

    Service 中添加同步块防止并发 重复. synchronized(this){}

  9. web.xml配置web中的key points(上)

    一.定义 定义时注意:xml元素是区分大小写的. <web-app></web-app> 这些必须小写 二.url-pattern 1)url-pattern 的值必须以/或者 ...

随机推荐

  1. jquery插件之jquery.extend和jquery.fn.extend的区别

    jquery.extend jquery.extend(),是拓展jquery这个类,即可以看作是jquery这个类本身的静态方法,例如: <!DOCTYPE html> <html ...

  2. ibatis的resultClass与resultMap 的区别

    ibatis的resultClass与resultMap还是有很大的区别.以下是我碰到的一个问题. 配置文件写法如下: 1 sqlMap2 typeAlias alias="notice&q ...

  3. Linux vi/vim使用方法

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 1.vi的基本概念 基本上vi ...

  4. 百度编辑器ueditor的toolbars的各个元素代表的功能说明

    百度编辑器ueditor的toolbars的各个元素代表的功能说明

  5. JavaWEB - 请求的转发和重定向

    JavaWEB - Servlet

  6. ffmpeg捕捉摄像头发送rtmp

    打印 DirectShow 支持的设备列表(true 可用1替换): ffmpeg -list_devices true -f dshow -i dummy 本计算机打印出的信息如下:[dshow @ ...

  7. APIO2017 游记

    参加了APIO的同学肯定知道我为什么只写标题不写内容. QAQ

  8. jcrop的bug

    1 360(7.1.1.620,内核:31.0.1650.63)的极速模式下,出现裁剪框后,鼠标点击,页面就会滑动到底部. 查看了下源码,发现是下面的代码: function watchKeys() ...

  9. 洛谷【P1303】A*B Problem

    题目传送门:https://www.luogu.org/problemnew/show/P1303 高精度乘法板子题,灵性地回忆一下小学时期列竖式的草稿纸即可. 时间复杂度:\(O(len^2)\) ...

  10. saltstack集中化管理平台

    1.安装与启动 yum install salt-master -y 安装服务端 chkconfig salt-master on 自启动 service salt-master start 启动 y ...