精华内容
下载资源
问答
  • kong 网关

    2021-04-11 23:30:40
    kong-database: image: postgres:9.6 ports: - 5432:5432 environment: - POSTGRES_USER=kong - POSTGRES_DB=kong - POSTGRES_PASSWORD=kong volumes: - "db-data-kong-postgres:/var/lib/postgresq...

    version: '3'

    services:
      kong-database:
        image: postgres:9.6
        ports:
          - 5432:5432
        environment:
          - POSTGRES_USER=kong
          - POSTGRES_DB=kong
          - POSTGRES_PASSWORD=kong
        volumes:
          - "db-data-kong-postgres:/var/lib/postgresql/data"
        deploy:
          replicas: 1
          restart_policy:
            condition: any
          resources:
            limits:
              cpus: '1'
              memory: 1000M  
      kong:
        image: kong
        environment:
          - LC_CTYPE=en_US.UTF-8
          - LC_ALL=en_US.UTF-8
          - KONG_DATABASE=postgres
          - KONG_PG_HOST=kong-database
          - KONG_PG_USER=kong
          - KONG_PG_PASSWORD=kong
          - KONG_CASSANDRA_CONTACT_POINTS=kong-database
          - KONG_PROXY_ACCESS_LOG=/dev/stdout
          - KONG_ADMIN_ACCESS_LOG=/dev/stdout
          - KONG_PROXY_ERROR_LOG=/dev/stderr
          - KONG_ADMIN_ERROR_LOG=/dev/stderr
          - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
        deploy:
          replicas: 1
          restart_policy:
            condition: any
          resources:
            limits:
              cpus: '0.5'
              memory: 500M  
        network_mode: host
        ports:
          - 80:8000
        depends_on:
          - kong-database

      konga:
        image: pantsel/konga:0.14.7
        ports:
          - 1337:1337
        depends_on:
          - kong
        environment:
          - NODE_ENV=production
          - DB_ADAPTER=postgres
          - DB_URI=postgresql://kong:kong@kong-database:5432/konga
        deploy:
          replicas: 1
          restart_policy:
            condition: any
          resources:
            limits:
              cpus: '0.2'
              memory: 200M  
    volumes:
      db-data-kong-postgres:

    networks:
      default:
        external:
          name: srv_network
     

    展开全文
  • Kong 网关

    2019-04-06 13:54:00
    2019独角兽企业重金招聘Python工程师标准>>> ...Kong的简介和安装 - 玩转Kong网关 微服务Kong(一)——简介 转载于:https://my.oschina.net/miaojiangmin/blog/3033005
    展开全文
  • Kong网关插件

    千次阅读 2020-07-06 10:08:52
    今天的一个重点就是要加强对 Kong API Gateway 网关的研究,对于 Kong 网关之前写过两篇文章,今天重点谈下 Kong 网关的插件支持能力。 从上面图可以看到,Kong 网关是基于 OpenResty 应用服务器,OpenResty 是一个...

    转载 李亚飞 大佬的文章:https://www.lyafei.com/

    今天的一个重点就是要加强对 Kong API Gateway 网关的研究,对于 Kong 网关之前写过两篇文章,今天重点谈下 Kong 网关的插件支持能力。

    在这里插入图片描述

    从上面图可以看到,Kong 网关是基于 OpenResty 应用服务器,OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。而 Kong 核心基于 OpenResty 构建,并且拥有强大的插件扩展功能。

    在 Http 请求到达 Kong 网关后,转发给后端应用之前,可以通过网关的各种插件对请求进行流量控制,安全,日志等各方面的处理能力。当前 Kong 的插件分为开源版和社区版,社区版还有更多的定制功能,但是社区版是要收费的。

    目前,Kong 开源版本一共开放 28 个插件,主要分为五大类,Authentication认证,Security安全,Traffic Control流量控制,Analytics & Monitoring分析&监控,Logging日志,其他还有请求报文处理类。插件类似 AOP 开发中的横切功能,可以灵活的配置进行拦截控制。

    附上:
    Kong 官网:https://konghq.com/
    Kong GitHub地址:https://github.com/kong/kong

    下面选择一些关键性的插件进行简单的说明。


    黑白名单控制能力(ip-restriction)

    Kong 提供的 IP 黑白名单控制能力还算相当强,从配置项里面可以看到主要可以针对两个维度进行配置,是针对所有的 API 接口还是针对特定的 API 接口,一个是针对所有的消费方还是特定的某个消费方。对于 IP 配置可以是一个区段,也可以是特定的 IP 地址。但是黑白名单不能同时配置,其次当前没有一个功能是针对某一个系统提供的所有服务都启用黑名单或白名单功能。


    日志记录能力(syslog、file-log、http-log)

    这里主要日志的插件比较多,一个是 sysLog 在配置后可以直接将 Kong 产生的日志写入到应用服务器的系统日志文件中。如果配置了 file-log 则是单独写入到你指定的 file 文件中。对于 http-log 则是对于 http 服务请求,可以详细的记录请求的输入和输出报文信息,但是具体是记录到哪里,需要通过 config.http_endpoint 配置。具体关键的配置参数信息如下:

    • consumer_id: 可选参数,消费者 id(启用了消费者认证可以使用,根据 id 识别发出请求的消费者)
    • config.http_endpoint: 日志接收服务器(包括使用的协议,http or https)
    • config.method: 可选参数,默认POST,访问日志服务器的请求方式(可选值:PUT,PATCH,POST);
    • config.timeout: 可选参数,默认10000毫秒,请求超时时间
    • config.keepalive: 可选参数,默认60000毫秒,连接在关闭之前可存活时间

    熔断插件(request-termination)

    该插件用来定义指定请求或服务不进行上层服务,而直接返回指定的内容。用来为指定的请求或指定的服务进行熔断。注意 Kong 的熔断插件感觉是临时对服务的禁用,而不是说当达到某一种监控阈值的时候自动触发熔断,或者相关内容还没有了解到。从官方文档的应用场景也可以看到这点。

    Temporarily disable a Service (e.g. it is under maintenance).
    Temporarily disable a Route (e.g. the rest of the Service is up and running, but a particular endpoint must be disabled).
    Temporarily disable a Consumer (e.g. excessive consumption).

    如果仅仅是这种方式的熔断话,实际上意义并不是很大。但是可用的地方就在于当某个业务系统进行发版部署的时候我们可以对该业务系统或该业务系统所提供的所有服务进行熔断。


    限流插件(rate-limiting)

    Kong 当前提供的限流相对来说还是比较弱,即主要是控制某一个 API 接口服务在单位时间内最多只能够调用多少次,如果超过这个次数那么网关就直接拒绝访问并返回错误提示信息。限流实际上一个是根据服务调用次数,一个是根据服务调用数据量,需要在这两个方面进行限流。而里面更加重要的反而是数据量的限流,因为大数据量报文往往更加容易造成内存溢出异常。


    安全认证类插件

    当前 Kong 网关提供 basic-auth,key-auth,oauth2,hmac-auth,jwt,ldap-auth六种认证插件。

    Basic Auth 基本认证插件,即我们根据用户名和密码来生成一个 base64 编码,同时将该编码和目标服务绑定,这样在消费目标服务的时候就需要在报文头填写这个 Base64 编码信息。

    Key Auth 认证插件则是利用提前预设好的关键字名称,如下面设置的 keynote = apices,然后为 consumer 设置一个 key-auth 密钥,假如 key-auth = test@keyauth。在请求 api 的时候,将 apikey=test@keyauth,作为一个参数附加到请求 url 后,或者放置到 headers 中。

    Hmac Auth 插件是设置绑定的 service 和 routte,以启动 hmac 验证。然后在 Consumers 页面中 Hmac credentials of Consumer 设置中添加一个 username 和 secret。


    请求报文容量限制(request-size-limiting)

    该插件用于限制请求报文的数据量大小,可以限制单个服务,也可以限制所有的 API 接口服务。


    支持Oauth2.0身份认证(oauth2)

    Kong 网关支持 Oauth2.0身份认证,Oauth2.0 协议根据使用不同的适用场景,定义了用于四种授权模式。

    Authorization code(授权码模式):标准的 Server 授权模式,非常适合 Server 端的 Web 应用。一旦资源的拥有者授权访问他们的数据之后,他们将会被重定向到 Web 应用并在 URL 的查询参数中附带一个授权码(code)。在客户端里,该 code 用于请求访问令牌(access_token)。并且该令牌交换的过程是两个服务端之前完成的,防止其他人甚至是资源拥有者本人得到该令牌。另外,在该授权模式下可以通过 refresh_token 来刷新令牌以延长访问授权时间,也是最为复杂的一种方式。

    Implicit Grant(隐式模式):该模式是所有授权模式中最简单的一种,并为运行于浏览器中的脚本应用做了优化。当用户访问该应用时,服务端会立即生成一个新的访问令牌(access_token)并通过 URL 的 #hash 段传回客户端。这时,客户端就可以利用 JavaScript 等将其取出然后请求 API 接口。该模式不需要授权码(code),当然也不会提供 refresh token 以获得长期访问的入口。

    Resource Owner Password Credentials(密码模式):自己有一套用户体系,这种模式要求用户提供用户名和密码来交换访问令牌(access_token)。该模式仅用于非常值得信任的用户,例如 API 提供者本人所写的移动应用。虽然用户也要求提供密码,但并不需要存储在设备上。因为初始验证之后,只需将 OAuth 的令牌记录下来即可。如果用户希望取消授权,因为其真实密码并没有被记录,因此无需修改密码就可以立即取消授权。token 本身也只是得到有限的授权,因此相比最传统的 username/password 授权,该模式依然更为安全。

    Client Credentials(客户端模式):没有用户的概念,一种基于 APP 的密钥直接进行授权,因此 APP 的权限非常大。它适合像数据库或存储服务器这种对 API 的访问需求。


    简单转换能力(request-transformer、response transformer)

    Kong 网关提供对输入和输出报文简单转换的能力,这部分内容后续再详细展开介绍。从当前配置来看,主要是对消息报文提供了Add,Replace,Rename,Append 等各种简单操作能力。

    展开全文
  • 主要介绍了docker安装kong网关的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • kong网关默认日志在/usr/local/kong/logs,主要有access.log,admin_access.log,error.log,access.log和nginx的access日志类似,这里会记录所所有通过kong网关的日志。 有些时候这些日志并不能满足我们的需要,...

    kong 网关日志格式修改


    kong网关默认日志在/usr/local/kong/logs,主要有access.log,admin_access.log,error.log,access.log和nginx的access日志类似,这里会记录所所有通过kong网关的日志。

    有些时候这些日志并不能满足我们的需要,因此需要修改日志格式。
    当发现/usr/local/kong/下面有nginx-kong.conf,nginx.conf,nginx-kong-stream.conf这些配置文件时,以为这就是日志的配置文件,结果不管怎么修改这些日志格式,重启后,配置文件都会还原。
    最后查询原因才得知,这些文件时kong网关启动时通过模板渲染方式生成的,每次重启都会重新生成,而真正的配置文件却在另外一个地方。
    这里要介绍下kong的安装方式:
    本文的服务器环境为ubuntu,安装请参考:https://docs.konghq.com/install/ubuntu/

    一、修改配置

    修改路径:/usr/local/share/lua/5.1/kong/templates/nginx_kong.lua

    upstream kong_upstream {
        server 0.0.0.1;
        balancer_by_lua_block {
            Kong.balancer()
        }
    
    # injected nginx_http_upstream_* directives
    > for _, el in ipairs(nginx_http_upstream_directives) do
        $(el.name) $(el.value);
    > end
    }
    ###添加log_format日志格式
    log_format  main  'remote_addr=[$remote_addr] http_x_forward=[$http_x_forwarded_for] time=[$time_local] request=[$request] '
            'status=[$status] byte=[$bytes_sent] elapsed=[$request_time] upstream_connect_time=[$upstream_connect_time] upstream_header_time=[$upstream_header_time] upstream_response_time=[$upstream_response_time] ' 'refer=[$http_referer] ua=[$http_user_agent] gzip=[$gzip_ratio] ' 'msec=[$msec] http_host=[$http_host] http_accept=[$http_accept|$http_accept_encoding|$http_accept_language]';
    
    ###
    server {
        server_name kong;
    > for i = 1, #proxy_listeners do
        listen $(proxy_listeners[i].listener);

    修改完上面的配置后,还需要在同一个配置文件中添加两处配置,见下面操作:

     #修改两处access.log文件配置
     ·····第一处配置·····
     server {
        server_name kong;
    > for i = 1, #proxy_listeners do
        listen $(proxy_listeners[i].listener);
    > end
        error_page 400 404 408 411 412 413 414 417 494 /kong_error_handler;
        error_page 500 502 503 504 /kong_error_handler;
    
        access_log ${{PROXY_ACCESS_LOG}} main;    ##此行结尾处添加main
        error_log ${{PROXY_ERROR_LOG}} ${{LOG_LEVEL}};
    
        client_body_buffer_size ${{CLIENT_BODY_BUFFER_SIZE}};
     ··················    
     ······第二处配置·····
      if #admin_listeners > 0 then
    server {
        server_name kong_admin;
    > for i = 1, #admin_listeners do
        listen $(admin_listeners[i].listener);
    > end
    
        access_log ${{ADMIN_ACCESS_LOG}} main;      ##此行结尾处添加main
        error_log ${{ADMIN_ERROR_LOG}} ${{LOG_LEVEL}};
     ······

    二、重启kong,查看access.log日志格式

    执行下面命令重启kong
    # kong reload /etc/kong/kong.conf
    查看日志:

    remote_addr=[39.96.130.100] http_x_forward=[118.74.245.171, 112.124.159.116] time=[17/Oct/2019:18:32:27 +0800] request=[GET /coach_core/api/v2/klass/node?app_version=2.5.4&coach_id=39709c50-a793-11e9-959e-49d70ecedf82&device_name=iPad%20mini%204&device_system=iOS13.1.2&device_type=2&end_date=2020-02-17&start_date=2019-10-17&time_zone=8 HTTP/1.1] status=[200] byte=[1762] elapsed=[0.018] upstream_connect_time=[0.000] upstream_header_time=[0.012] upstream_response_time=[0.012] refer=[-] ua=[KPL_teacher_appstore/2.5.4 (iPad; iOS 13.1.2; Scale/2.00)] gzip=[-] msec=[1571308347.571] http_host=[p.coach.kuaipeilian.com] http_accept=[application/vnd.lumen.v1+json|gzip, deflate|zh-Hans-CN;q=1]

    接下来我们就可以对日志进行进一步处理了。

    展开全文
  • KONG网关 — 介绍安装

    千次阅读 2019-04-30 16:46:04
    公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的...
  • Kong网关upstream健康检查机制

    千次阅读 2020-06-28 18:38:58
    upstream是指位于Kong网关之后的上游API/service,即客户端请求被Kong网关转发到的目标地址。在Kong网关中,upstream表示虚拟主机名,可用于: 健康检查 熔断 负载均衡。 在实际生产环境中,upstream可以指向部署...
  • 公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的基本...
  • kong网关集群部署

    2020-03-11 23:15:49
    kong网关集群部署机器准备节点A部署1.安装依赖组件2.安装postgresql3.创建kong数据库4.安装kong5.安装可视化界面konga6.konga部署在生产环境节点B部署1.安装kong测试集群效果 机器准备 节点A 192.168.0.1 节点B 192....
  • kong 网关path白名单插件使用kong网关路径白名单使用 kong网关路径白名单使用 插件地址:https://github.com/seifchen/kong-path-whitelist 支持正则与非正则, 使用方法见github主页! ...
  • Kong网关工作原理及核心概念

    千次阅读 2020-07-08 10:32:56
    Kong网关简介安装 之前简单介绍安装了 Kong,这篇就是深入 Kong 详细讲述下它的一些工作原理、核心概念。 附上: Kong 官网:https://konghq.com/ Kong GitHub地址:https://github.com/kong/kong Kong的工作原理 ...
  • kong 网关access.log日志格式修改

    千次阅读 2018-11-05 16:08:55
    kong网关默认日志在/usr/local/kong/logs,主要有access.log,admin_access.log,error.log,access.log和nginx的access日志类似,这里会记录所所有通过kong网关的日志,默认的access.log格式为: 这里默认的日志...
  • Kong网关部署(一)

    2020-05-26 18:15:32
    Kong的入门Kong网关部署(一)写在前面二.安装Kong需要的数据库PostgreSQL1. 准备:安装依赖组件2.安装及配置三.操作postgresql1. 修改postgres用户密码2. 创建用户(名字任意)3. 创建叫kong的数据库(名字任意)4. ...
  • kong网关超时设置 konga和应用ingress配置超时设置 利用konga的界面进行更改 在svc上进行修改,搜索到对应的svc并找到connect timeout这几个参数进行调整 kong的默认时间是60s(60),按自己需求将时间调大到自己...
  • kong网关健康检查和断路器配置

    千次阅读 2018-11-20 13:19:20
    使用kong网关实现负载均衡, 根据配置规则将后端tatget节点路由到客户端请求,当后端某个target服务不能访问时,我们希望kong网关在负载中跳过该节点,当该节点可用时,我们希望kong网关能够将该节点加入负载,这些...
  • Kong网关、konga、postgresql搭建及使用

    千次阅读 2019-10-31 17:05:55
    Kong网关搭建及使用(centons7) 使用kong网关需要三步: 1.数据库安装(postgresql) 2.kong网关安装(kong) 3.UI界面操作(dashboard) 1.安装PostgreSql数据库 1. 安装postgresql源 ``` yum install ...
  • kong网关的安装和简单使用 官网地址:https://docs.konghq.com/ kong网关下载 进入官网 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBtaFvNa-1608713598496)(C:\Users\jy\AppData\...
  • kong网关 DNS-based loadbalancing 配置

    千次阅读 2018-11-09 11:37:19
    kong网关负载均衡配置方式分为DNS-based loadbalancing和Ring-balancer两种,Ring-balancer方式的负载均衡配置之前已经介绍过------[Ring-balancer],今天这里主要介绍基于DNS的负载均衡配置。 DNS-based load...
  • kong 网关教程入门

    万次阅读 2018-12-27 17:04:03
    helm 安装 先创建pv kind: PersistentVolume ... name: kong-postgre labels: release: stable spec: capacity: storage: 8Gi accessModes: - ReadWriteOnce persistentVolum...
  • centos6.5 安装 kong 网关

    2018-04-26 11:41:16
    最近要求了解下kong网关,然后在网上一顿找,说实话,度娘的力量还是不行啊,找出来的那些跟着配置,不是这错,就是那有问题。然后没办法,翻墙用Google了。谷歌找到了两篇,分别是用cassandra 2.2.x+和PostgreSQL ...
  • Kong网关初探

    2021-03-27 15:00:35
    Kong开源版不提供dashboard支持,只有Kong企业版才有该功能。但有第三方控制台Konga同样可以友好地管理Kong Admin API对象,快速安装如下: docker run -d -p 1337:1337 \ --name konga \ --network=kong-net \ -e ...
  • 1、kong网关,根据官方docker-compose部署 2、代理后出现部分请求失败需要不断刷新 解决 1、其实是官方docker-compose里指定了启动容器的user,删除通过kong用户来启动即可 github相关问题 ...
  • API网关之Kong网关简介

    2020-07-31 16:26:11
    它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具。你可以在那些上游service之上,额外去实现一些功能。Kong是开源的,所以你可以在Github找到它,你现在就可以下载使用。 Kong是一款基于...
  • Kong网关安装

    2020-06-16 19:18:00
    下载Kong wget https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong-community-edition-1.0.2.el7.noarch.rpm 下载后重命名:mv download_file\?file_path\=centos%2F7%2...
  • Kong网关介绍

    千次阅读 2019-09-28 19:33:35
    传统服务如下左图,通用函数重复使用在多个服务中,系统庞大僵化难以管理,由于会冲击其他服务导致的扩展困难,由于系统限制导致生产率低,如下右图是kong的解决方案 kong特点: 云原生:平台无关,kong可以在...
  • 安装 Kong 网关

    2020-07-13 20:06:00
    快速入门PostgreSQLKong可以在有或没有数据库的情况下运行,这里我们使用数据库的方式进行运行。Kong支持PostgreSQL 9.5+和Cassandra 3.xx数据...
  • KONG网关 — 插件开发

    千次阅读 2019-05-10 16:30:54
    在很多系统中不可能吧用户体系用到kong提供的权限验证体系,包括对于一套系统完整的RBAC系统大家都有不同的改进,以及请求加密参数校验等等,所以对于扩展性对于网关的定义需要有一定的能力的,kong是通过nginx+lua...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 950
精华内容 380
关键字:

kong网关