,,教你30分钟通过Kong实现.NET网关

,,教你30分钟通过Kong实现.NET网关 孔(姓)是一个Openrestry程序,而Openrestry运行在Nginx上,用左上臂扩展了nginx所以可以认为Kong=Openrestry nginx lua,这篇文章主要介绍了30分钟通过孔(姓)实现网网关,需要的朋友可以参考下

什么是Kong

Openrestry是一个基于Nginx与左上臂的高性能平台,内部有大量的左上臂库其中ngx_lua_moudule使开发人员能使用左上臂脚本调用Nginx模块孔是一个Openrestry程序,而Openrestry运行在Nginx上,用左上臂扩展了nginx所以可以认为Kong=Openrestry nginx lua孔(姓)有很高的扩展性,可以通过其插件机制实现扩展 官方文档:https://docs.konghq.com/ github:https://githubcom/孔/孔

原理

客户端请求到达孔,孔识别出是哪个消费者,根据路由规则将请求转发给服务对应的上游服务我们来看看这个过程中涉及到的核心组件 消费者:代表一个应用,可以为消费者定义插件,制定其请求规则 路线:客户端与服务匹配的规则,是孔(姓)的入口,一旦匹配途径规则,则将其代理到与其关联的服务,一个途径对应一个服务,一个服务有多个途径 服务:管理我们的应用程序接口或者上游服务器,服务主要属性是url,端口,协议等 上游:位于孔(姓)之后的服务/API,多实例部署实现负载均衡 插件:提供高级功能并扩展网关例如身份认证,速率限制等

安装Kong

官方文档:香港https://号com/install/# kong-社区 大家可以安装企业版或者开源版,我这次安装企业版,但只使用其中的开源功能 #拉镜像 码头工人拉孔/孔-出入口:2 .6 .0 .0-阿尔卑斯 #打标签 码头标签孔/孔-入口:2 .6 .0 .0-阿尔卑斯山孔表示“受动者”: employee | lessee #创建网络 码头工人网络创建金刚网 #运行数据库容器 docker run-d-name kong-ee-database-network=kong-ee-net-p 5432:5432-e ' POSTGRES _ USER=kong '-e ' POSTGRES _ DB=kong '-e ' POSTGRES _ PASSWORD=kong ' POSTGRES:9.6 #数据库迁移 docker run-RM-network=KONG-ee-net-e ' KONG _ DATABASE=postgres '-e ' KONG _ PG _ HOST=KONG-ee-DATABASE '-e ' KONG _ PG _ PASSWORD=KONG '-e ' KONG _ PASSWORD={ PASSWORD } ' KONG-ee KONG迁移引导 #运行孔(姓) docker run-d-name KONG-ee-network=KONG-ee-net-e ' KONG _ PROXY _ LISTEN=00 .0 .0:8000,0 .0 .0 .0:9080 http 2 '-e ' KONG _ DATABASE=postgres '-e ' KONG _ PG _ HOST=KONG-ee-DATABASE '-e ' KONG _ PG _ PASSWORD=KONG '-e ' KONG _ PROXY _ ACCESS _ LOG=/dev/stdout '-e ' KONG _ ADMIN _ ACCESS _ LOG=/dev/stdout '-e ' KONG _ PROXY

安装可视化界面Konga

官方源码:https://github.com/pantsel/konga docker pull pantsel/konga docker run-d-p 1337:1337-network kong-ee-net-e ' TOKEN _ SECRET=kong TOKEN '-e ' DB _ ADAPTER=postgres '-e ' DB _ HOST=kong-ee-database '-e ' DB _ USER=kong '-e ' DB _ PASSWORD=kong '-name konga pantsel/konga 访问本地主机:1337,新建用户,登录后创建连接:测试/http://192.168.43.94:8001,指定孔美国石油学会(American Petroleum Institute)的端口8001

Kong代理HTTP服务

我们用的演示项目是https://github.com/cysnet/gateway-aspnetcore-demo,其中包含以下内容 超文本传送协议(超文本传输协议的缩写)服务:服务器一与服务器2 Grpc服务:GrpcService1与GrpcService2 Grpc客户端:GrpcClient 身份服务器四服务:Idstest 日志服务:日志服务器 1.代理超文本传送协议(超文本传输协议的缩写)服务我们用服务器1,启动服务器一 2.通过管理美国石油学会(American Petroleum Institute)在孔(姓)中创建服务,也可使用可视化界面孔加创建 邮政http://192168 .43 .94:8001/services-数据名称=服务器1-数据URL=' http://192168 .43 .94:5000 ' 3.通过管理美国石油学会(American Petroleum Institute)创建路由,也可使用可视化界面孔加创建 http://192 .168 .43 .94:8001/services/server 1/routes-data ' paths[]=/http 1 '-data name=http 1 4.测试

Kong代理Grpc服务

1.代理Grpc我们用GrpcService1,启动GrpcService1 2.通过管理美国石油学会(American Petroleum Institute)在孔(姓)中创建服务,也可使用可视化界面孔加创建 192后168 .43 .96:8001/服务-数据名称=gserver1 -数据协议=grpc -数据主机=192.168.43.94 -数据端口=6001 3.通过管理美国石油学会(American Petroleum Institute)创建路由,也可使用可视化界面孔加创建 192后168 .43 .94:8001/services/gserver 1/routes-数据协议[]=grpc-数据名称=r-gserver 1-数据路径[]=/greet 4.测试,运行GrpcClient

Kong负载Http服务

1.启动服务器一与服务器2 2.通过管理美国石油学会(American Petroleum Institute)在孔(姓)中创建上游,也可使用可视化界面孔加创建 邮政http://192168 .43 .94:8001/upstreams-data name=u-http 1 3.为u-http1创建目标,指向服务器一与服务器2 邮政http://192168 .43 .94:8001/upstreams/u-http 1/targets-data target=' 192168 .43 .94:5000 ' 邮政http://192168 .43 .94:8001/upstreams/u-http 1/targets-data target=' 192168 .43 .94:5001 ' 4.修改http1服务的指向,让其指向u-http1这个向上游 修补程序http://192 .168 .43 .94:8001/services/server 1-数据主机=' u-http 1 ' 5.测试,调用以下美国石油学会(美国石油协会) http://192 .168 .43 .94:8000/http 1/Name

Kong负载Grpc服务

1.启动GrpcService1与GrpcService2 2.通过管理美国石油学会(American Petroleum Institute)在孔(姓)中创建上游,也可使用可视化界面孔加创建 邮政http://192168 .43 .94:8001/upstreams-data name=u-g server 1 3.为u-g服务器一创建目标,指向GrpcService1与GrpcService2 邮政http://192168 .43 .94:8001/upstreams/u-g server 1/targets-data target=' 192168 .43 .94:6001 ' 邮政http://192168 .43 .94:8001/upstreams/u-g server 1/targets-data target=' 192168 .43 .94:6002 ' 4.修改gserver1服务的指向,让其指向u-g服务器一这个向上游 修补程序http://192 .168 .43 .94:8001/services/gserver 1-数据主机=' u-gserver 1 ' 5.测试,运行GrpcClient

集成IdentityServer4实现JWT认证

1.给服务器一开启jwt插件 POST http://localhost:8001/services/server 1/plugins-d " name=jwt "-d " configkey _ claim _ name=client _ id 2.创建消费者 POST localhost:8001/consumers-d ' username=c-server 1 ' 3.获取ids4证书公钥与私钥 openssl安装https://slproweb.com/products/Win32OpenSSL.html OpenSSL pkcs12-在切斯特pfx-无证书-节点-out private _ PC键 从密钥对中提取私钥(头部格式:-开始南非共和国(Republic of South Africa)公钥-) OpenSSL RSA-in private _ PC私人钥匙PrivacyEnhancedMail增强的私密电子邮件 从密钥对提取公钥(头部格式:-开始公钥-) OpenSSL RSA-in private _ PC露天酒吧键 4.为c-服务器一创建凭证 POST localhost:8001/consumers/c-server 1/jwt-d ' algorithm=RS 256 '-d ' key=big _ cat '-d ' secret=xxxxx

x' -d 'rsa公开密钥=

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: