⑴APISIX是一款强大的微服务网关管理软件,您可以通过这款工具管理您的网络,如协调负载平衡,监控报警,抵御恶意工具和其它的网络问题;这款软件基于原生平台所打造,能够兼容多种环境,用户可以轻松将其部署在目前主流的多种平台中;Apache
⑵APISIX强大的功能可以为网络维护人员提供许多便捷的网络运维管理解决方案,让用户能够高效有效的管理自己的网络;Apache
⑶APISIX拥有的极高的性能,无论使用它处理任何网络问题都是很快的;总之这款工具对管理大型网络十分有用,感兴趣的朋友欢迎在本站下载体验。
⑷原生云:与平台无关,无供应商锁定,APISIX可以从裸机运行到Kuberes。
⑸运行环境:同时支持OpenResty和Tengine。
⑹支持ARM:不用担心基础技术的锁定。
⑺TCP UDP代理:动态TCP/UDP代理。
⑻Dubbo代理:动态HTTP到Dubbo代理。
⑼动态MQTT代理:支持对MQTT进行负载平衡client_id,均支持MQTT .。*,.。
⑽gRPC proxy:代理gRPC通信。
⑾gRPC转码:支持协议转码,以便客户端可以使用HTTP / JSON访问您的gRPC API。
⑿代理Websocket
⒀代理Dubbo:基于Tengine的Dubbo代理。
⒁HTTP(S转发代理
⒂SSL:动态加载SSL证书。
⒃热更新和热插件:不断更新其配置和插件,而无需重新启动!
⒄代理重写:支持重写host,uri,schema,enable_websocket,headers发送之前该请求的上游。
⒅响应重写:为客户端设置自定义的响应状态代码,正文和标头。
⒆无服务器:在APISIX的每个阶段调用功能。
⒇动态负载平衡:循环负载平衡。
⒈基于散列的负载平衡:具有一致的散列会话的负载平衡。
⒉运行状况检查:在上游节点上启用运行状况检查,并在负载平衡期间自动过滤不正常的节点,以确保系统稳定性。
⒊断路器:智能跟踪不健康的上游服务。
⒋代理镜像:提供镜像客户端请求的功能。
⒌流量分配:允许用户逐步引导各个上游之间的流量百分比。
⒍支持完整路径匹配和前缀匹配
⒎支持所有的Nginx内置变量条件路由,这样你就可以使用cookie,args等如布线的条件来实现金丝雀释放,A / B测试等。
⒏支持各种运营商作为路由的判断条件,例如{"arg_age", ">", }
⒐支持自定义路由匹配功能
⒑IPv:使用IPv来匹配路由。
⒒支持批处理Http请求
⒓身份验证:key-auth,JWT,basic-auth,wolf-rbac
⒔IP白名单/黑名单
⒕引荐人白名单/黑名单
⒖IdP:支持外部身份验证服务,例如Auth,okta等,用户可以使用它来连接到OAuth .和其他身份验证方法。
⒗Anti-ReDoS(正则表达式拒绝服务:Anti ReDoS的内置策略,无需配置。
⒘CORS为您的API启用CORS(跨域资源共享。
⒙URI阻止程序:按URI阻止客户端请求。
⒚OpenTracing:支持Apache Skywalking和Zipkin
⒛与外部服务发现一起使用:除了内置的etcd外,它还支持Consul和Nacos以及Eureka
①监控和指标:普罗米修斯
②集群:APISIX节点是无状态的,创建配置中心的集群,请参考etcd集群指南。
③高可用性:支持在同一群集中配置多个etcd地址。
④版本控制:支持操作回滚。
⑤CLI:通过命令行启动停止重新加载APISIX。
⑥独立:支持从本地YAML文件加载路由规则,它更加友好,例如在kuberes(ks下。
⑦全局规则:允许针对所有请求运行任何插件,例如:限制速率,IP过滤器等。
⑧高性能:单核QPS达到k,平均延迟小于.毫秒。
⑨REST Admin API:使用REST Admin API来控制Apache
⑩APISIX(默认情况下仅允许...访问,您可以修改其中的allow_admin字段conf/config.yaml以指定允许调用Admin
ⅠAPI的IP列表。另外,请注意,Admin
ⅡAPI使用密钥身份验证来验证调用者的身份。部署前需要修改其中的admin_key字段,conf/config.yaml以确保安全。
Ⅲ外部日志记录器:将访问日志导出到外部日志管理工具。(HTTP记录器,TCP记录器,Kafka记录器,UDP记录器
Ⅳ定制插件:允许挂钩共同相,如rewrite,aess,header filter,body
Ⅴfilter和log,还允许钩balancer阶段。
Ⅵ自定义负载平衡算法:您可以在此balancer阶段中使用自定义负载平衡算法。
Ⅶ自定义路由:支持用户自己实现路由算法。
Ⅷ易于安装和部署,该工具可以帮助网络维护人员更好的维护网络。
Ⅸ这款工具可以为用户提供动态实时高效的API网关服务。
Ⅹ使用这款工具您可以很好的管理您的网络流量。
㈠支持流量的负载平衡动态平衡电路中断身份验证等管理功能。
㈡通过这款工具您可以轻松处理传统南北流量服务的东西向流量。
㈢这款工具还可以用作ks入口的控制器使用。
㈣这款工具支持的功能非常强大,如A/B测试蓝绿色部署限制速率防御恶意攻击等都可以使用它处理。
㈤使用这款工具您还可以在API Gateway中实现插件编排。
㈥很多知名的大企业都在使用这款工具管理网关和管理网路。
㈦这款工具非常安全,能够抵御使用过程中的各种网络工具。
㈧这款工具是一个开源工具,因此用户可以免费部署它。
㈨该工具具有出色的性能,可以为企业带来最佳的网关管理解决方案。
㈩步骤:安装Apache APISIX
感谢Docker,我们可以通过执行以下命令来启动Apache APISIX并启用Admin API:
下载所有需要的文件将花费一些时间,这取决于您的网络,请耐心等待。完成此步骤后,我们可以使用curlAdmin API来判断Apache
APISIX是否成功启动。
我们希望返回以下数据:
恭喜你!您现在有一个正在运行的Apache APISIX实例!接下来让我们创建一条路线!
你知道吗?Apache APISIX提供了功能强大的Admin API和仪表板供我们使用,但是我们将在本指南的此处使用Admin
API。我们走吧!
我们可以创建一个Route并将其定位到我们的后端服务(通常称为上游,当一个Request路由到达Apache APISIX时,Apache
APISIX将看到该请求的去向。
那么Apache APISIX如何知道这一点?那是因为我们有一个使用Route配置的规则列表。以下是路线数据示例:
此路由意味着当所有入站请求httpbin.:符合所有这些规则(匹配的请求时,它们将被转发到上游:
请求的HTTP方法是GET;
请求具有Host标头,其值为example.:
请求的路径匹配/services/users/*,*表示所有子路径,例如/services/users/getAll?limit=。
创建此路由后,我们可以使用Apache APISIX的地址访问我们的后端服务(实际上是上游:
这将由 APISIX转发。
阅读以上部分后,我们知道我们必须将Upstreamfor设置为Route。只需执行以下命令即可创建一个:
我们将其roundrobin用作负载平衡器机制,并将其设置httpbin.:为我们的上游目标(后端服务器,其ID为。有关更多字段,请参阅Admin
注意: Create an
Upstream实际上并不是必需的,因为我们可以使用插件来拦截请求然后直接响应,但是假设我们需要Upstream在本指南中至少设置一个。
与上游绑定路线#
我们刚刚创建了一个上游(参考我们的后端服务,让我们绑定一条路由!
再次恭喜您!我们创建了一个Route和Upstream,还将它们绑定在一起。现在,让我们调用Apache APISIX来测试created
哇!它会从我们的Upstream(httpbin.实际上返回数据,它按预期工作!
让我们做一些有趣的事情,由于任何人都可以访问我们Route在Step中创建的公众,我们只希望John可以访问它。让我们使用使用者和插件来实现此保护。
首先,让我们使用key-auth插件创建使用者 ,我们需要提供一个指定的密钥:John
接下来,让我们结合我们的Consumer(John)到Route,我们只需要启用的关键AUTH该插件Route:
好的,当我们Route从现在开始访问在步骤中创建的内容时,将发生未授权错误。让我们看看如何访问它Route:
是的,刚刚添加了一个带有正确密钥的Header被叫apikey!保护任何东西都很容易Routes,对吧?
路线编号中的前缀
现在,假设您要在路由中添加前缀(例如:samplePrefix,并且不想使用host标头,则可以使用proxy-rewrite插件来执行此操作。
现在,您可以使用以下命令调用路由:
APISIX仪表板
Apache APISIX提供了一个仪表板,使我们可以更轻松地操作Apache APISIX。
确保所有必需的端口(默认为//未被其他系统/进程使用。
以下命令将终止正在特定端口上侦听的进程(在基于UNIX的系统中。
如果Docker容器持续不断地重启/失败,则只需访问该容器并观察日志以了解发生了什么情况。