基于APISIX实现API网关案例分享

一、APISIX介绍

1、定义

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关。它构建于 NGINX + ngx_lua 的技术基础之上,充分利用了 LuaJIT 所提供的强大性能。

2、软件架构

2.1、架构图

APISIX 主要分为两个部分:

  1. APISIX 核心:包括 Lua 插件、多语言插件运行时(Plugin Runner)、Wasm 插件运行时等;
  2. 功能丰富的各种内置插件:包括可观测性、安全、流量控制等。

2.2、APISIX Core

APISIX Core提供了路由匹配、负载均衡、服务发现、API 管理等重要功能,以及配置管理等基础性模块。除此之外,APISIX 插件运行时也包含其中,提供原生 Lua 插件的运行框架和多语言插件的运行框架,以及实验性的 Wasm 插件运行时等。APISIX 多语言插件运行时提供多种开发语言的支持,比如 Golang、Java、Python、JS 等。

2.3、APISIX Plugin

APISIX 目前也内置了各类插件,覆盖了 API 网关的各种领域,如认证鉴权、安全、可观测性、流量管理、多协议接入等。

2.4、Upstream、Router、Service

Upstream也称之为上游,是对多个服务节点按照配置规则进行负载均衡。

Route也称为路由,定义了客户端请求API与服务节点(也可以指定具体API)之间的匹配规则,支持插件配置。

Service也称之为服务,是一组 Route 的抽象,支持插件配置。

建议设计逻辑如下:

Service(基于forward-auth的应用授权)---多个Route(客户端和服务端的API映射)

二、基于APISIX的API网关实现

3、Service应用授权

3.1、APPID/SIGN/TIMESTAMP实现逻辑

时间校验

当前时间-TIMESTAMP 小于 1分钟

签名校验

sign=md5(appId=APPID&timestamp=TIMESTAMP&appSecret=APPSECRET)

/**

     * 生成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值