随笔分类 -  云原生

k8s,apisix,higress,istio
摘要:参考:https://apisix.apache.org/zh/docs/apisix/FAQ/ 在你提供的 Apache APISIX 路由配置中,vars 字段用于定义一些变量匹配规则。具体来说,vars 字段可以用来根据请求的特定变量(如 URI、请求方法等)进行条件匹配。 添加正则路由 cu 阅读全文
posted @ 2024-12-03 11:19 张占岭 阅读(227) 评论(0) 推荐(0) 编辑
摘要:参考: https://i4t.com/19399.html https://github.com/apache/apisix/issues/9193 https://github.com/apache/apisix/issues/9830 https://apisix.apache.org/doc 阅读全文
posted @ 2024-11-14 19:53 张占岭 阅读(390) 评论(0) 推荐(0) 编辑
摘要:通过prometheus的插件收集apisix的指标与监控,并上传到服务端,通过grafana对数据进行分析,也是非常必要的。 配置 values.yaml文件,开启prometheus和metrics, 我的apisix是通过helm部署到kubernetes的,我可以通过values.overr 阅读全文
posted @ 2024-11-05 11:09 张占岭 阅读(67) 评论(0) 推荐(0) 编辑
摘要:参考:https://docs.api7.ai/apisix/key-concepts/plugins Apache APISIX是Apache软件基金会下的顶级项目,由API7.ai开发并捐赠。它是一个高性能的云原生API网关,具有动态、实时等特点。 APISIX网关可作为所有业务的流量入口,为用 阅读全文
posted @ 2024-11-03 14:48 张占岭 阅读(95) 评论(0) 推荐(0) 编辑
摘要:云原生网关~文章汇总 涉及到的网关产品:阿里MSE网关,apisix网关 Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。 官方地址:https://apisix.apache.org/ 阅读全文
posted @ 2024-11-01 13:13 张占岭 阅读(75) 评论(0) 推荐(0) 编辑
摘要:起因 我有个网站A【蓝色服务】,要对网站A进行改版【绿色服务】,其中用户中心已经改完了,希望当用户访问时,如果http请求头中包含isGroup,并且isGroup=1时,去新的绿色服务,反之就还是去蓝色服务。 前提 蓝绿服务,域名是同一个,如lind.gray.com 蓝绿服务,各个页面的URL是 阅读全文
posted @ 2024-10-31 17:35 张占岭 阅读(220) 评论(0) 推荐(0) 编辑
摘要:作用 将http请求与响应的内容发到kafka的topic,以json的形式发送存储 配置相关 log_format为自定义配置字段,添加后,默认的请求响应消息将被覆盖 { "_meta": { "disable": false }, "batch_max_size": 1, "brokers": 阅读全文
posted @ 2024-09-10 10:22 张占岭 阅读(175) 评论(0) 推荐(0) 编辑
摘要:参考:https://overstarry.vip/posts/apisix如何添加自定义插件/ 首先,我们需要向自定义的插件user-remote-auth添加到apisix中,对这块不清楚的同学,可以参考我这篇文章:【apisix~lua插件开发与插件注册】,添加成功之后,通过curl http 阅读全文
posted @ 2024-08-15 11:43 张占岭 阅读(497) 评论(0) 推荐(0) 编辑
摘要:在 Apache APISIX 中,通过 proxy-rewrite 插件来修改上游配置时,需要确保插件的执行顺序和上下文环境正确。你提到在自己的插件中调用 proxy_rewrite.rewrite({host="new_upstream"}, ctx),但新上游没有生效,这可能是由于以下几个原因 阅读全文
posted @ 2024-06-25 11:28 张占岭 阅读(256) 评论(0) 推荐(1) 编辑
摘要:路由route 路由(Route)是请求的入口点,它定义了客户端请求与服务之间的匹配规则。路由可以与服务(Service)、上游(Upstream)关联,一个服务可对应一组路由,一个路由可以对应一个上游对象(一组后端服务节点),因此,每个匹配到路由的请求将被网关代理到路由绑定的上游服务中。 如图: 阅读全文
posted @ 2024-06-17 16:22 张占岭 阅读(576) 评论(0) 推荐(0) 编辑
摘要:集成服务发现注册中心 1 摘要 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器。如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知。再者因不能及时更新这些信息,也会对业务带来一定的影响,还有人为误操作带来的影响也不可忽视,所以网关非常 阅读全文
posted @ 2024-05-20 13:34 张占岭 阅读(643) 评论(0) 推荐(1) 编辑
摘要:参考: https://apisix.apache.org/docs/apisix/plugins/authz-keycloak/ https://www.cnblogs.com/lori/p/16716520.html kc插件源码梳理及原理说明 如果只是进行keycloak颁发的token进行校 阅读全文
posted @ 2024-05-16 10:26 张占岭 阅读(132) 评论(0) 推荐(0) 编辑
摘要:扩展apisix原始插件 当apisix提供的插件不能满足我们要求时,我们可能需要将它的plugin进行个性化扩展,例如一个jwt认证插件jwt-auth,它本身具有验证jwt有效性功能,支持rs256,hs256等常用签名算法,但在验证之后,如果希望将jwt中的用户信息取出来,并放请求头向上游传递 阅读全文
posted @ 2024-05-15 09:25 张占岭 阅读(97) 评论(0) 推荐(0) 编辑
摘要:开发插件的步骤 在APISIX中,要自定义插件,一般需要按照以下步骤进行操作: 编写Lua脚本:首先,你需要编写Lua脚本来实现你想要的功能。可以根据APISIX提供的插件开发文档和示例进行编写。 将Lua脚本放置到APISIX插件目录:将编写好的Lua脚本文件放置到APISIX的插件目录下,一般是 阅读全文
posted @ 2024-05-14 09:09 张占岭 阅读(1272) 评论(0) 推荐(1) 编辑
摘要:参考 https://docs.api7.ai/apisix/how-to-guide/custom-plugins/create-plugin-in-lua https://apisix.apache.org/docs/apisix/next/plugin-develop/ https://api 阅读全文
posted @ 2024-05-13 20:06 张占岭 阅读(577) 评论(0) 推荐(0) 编辑
摘要:在网关开启jwt-auth插件之后,你的网关就具有了jwt解析和校验的功能,主要是校验jwt token的有效性,包含过期时间和签名等。 https://apisix.apache.org/docs/apisix/plugins/jwt-auth/ 支持的签名算法 "HS256" "HS512" " 阅读全文
posted @ 2024-05-10 13:24 张占岭 阅读(529) 评论(0) 推荐(1) 编辑
摘要:使用 helm 部署 apisix 相关阅读: https://medium.com/@martin.hodges/installing-apisix-api-gateway-on-your-kubernetes-cluster-c6be6d844f36> https://github.com/ap 阅读全文
posted @ 2024-05-10 08:57 张占岭 阅读(634) 评论(0) 推荐(0) 编辑
摘要:参考 https://github.com/higress-group/proxy-wasm-go-sdk/tree/main/proxywasm https://github.com/tetratelabs/proxy-wasm-go-sdk https://github.com/alibaba/ 阅读全文
posted @ 2024-04-07 08:40 张占岭 阅读(107) 评论(0) 推荐(0) 编辑
摘要:相关依赖 github.com/higress-group/proxy-wasm-go-sdk github.com/alibaba/higress/plugins/wasm-go 标准的redis 下面是一个读取redis指定key的方法,使用了higress的wasm-go组件实现的 err : 阅读全文
posted @ 2024-04-06 12:05 张占岭 阅读(201) 评论(0) 推荐(0) 编辑
摘要:Go和TinyGo是两种不同的Go语言编译器,它们之间有以下几点区别: 目标平台: Go:Go语言编译器主要面向通用计算机平台,如Windows、Linux、macOS等。 TinyGo:TinyGo专注于支持嵌入式系统和物联网设备等资源受限的平台,如微控制器、嵌入式设备、WebAssembly等。 阅读全文
posted @ 2024-04-03 16:47 张占岭 阅读(275) 评论(0) 推荐(0) 编辑