APISIX Dashboard上的配置操作

news2025/3/4 0:38:21

文章目录

  • 登录
  • 配置路由
  • 配置消费者
  • 创建后端服务项目
  • 配置上游
  • 再创建一个路由
  • 测试

登录

http://192.168.10.101:9000/user/login?redirect=%2Fdashboard
在这里插入图片描述
根据docker 容器里的指定端口:
在这里插入图片描述

配置路由

通过apisix 的API管理接口来创建(此路由,直接通过APISIX Dashboard可视化界面配置,据我所知是不行,包括key什么的都不知道在什么地方配置),所以直接通过API管理接口来创建。

curl -X PUT 'http://127.0.0.1:9180/apisix/admin/routes/r1' \
    -H 'X-API-KEY: <api-key>' \
    -H 'Content-Type: application/json' \
    -d '{
        "uri": "/apisix/plugin/jwt/sign",
        "plugins": {
            "public-api": {}
        }
    }'

其中的<api-key>替换为:
在这里插入图片描述
最终为:

curl -X PUT 'http://127.0.0.1:9180/apisix/admin/routes/r1' \
    -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \
    -H 'Content-Type: application/json' \
    -d '{
        "uri": "/apisix/plugin/jwt/sign",
        "plugins": {
            "public-api": {}
        }
    }'

当出现以下红框里的内容时,表明执行成功:
在这里插入图片描述
注意以上内容,再往终端控制台粘贴执行时注意一下格式,有时候格式不对,可以使用AI工具给格式化一下,执行会报其他信息。
在这里插入图片描述
执行完毕后,通过APISIX Dashboard上的路由界面可以看到多了一条路由信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置消费者

{
  "username": "jack",
  "plugins": {
    "jwt-auth": {
      "algorithm": "HS256",
      "base64_secret": false,
      "exp": 86400,
      "key": "62ebfa59f112a56b0e691df72fbeeffc",
      "secret": "my-secret-key"
    }
  }
}

在这里插入图片描述
在这里插入图片描述
在浏览器中输入:http://192.168.10.101:9080/apisix/plugin/jwt/sign?key=62ebfa59f112a56b0e691df72fbeeffc 如果没有问题的话,回复JWT Token的。请求参数中的key就是配置的消费者里的key。
在这里插入图片描述

创建后端服务项目

在另一台机器:192.168.10.106上,用JS写一个在Node.js运行,并可访问的后台服务项目。
Node.js的安装已省略,可参照网上的。
安装完毕后,看看 node -v 和 npm -v 是否都显示。
创建项目

cd /opt
mkdir my-node-app
npm init -y   					#会快速生成package.json
npm install express             #web框架  
vim app.js

将以下内容写入到app.js文件中

const express = require('express');
const app = express();
const port = 5001;

app.get('/protect/tom', (req, res) => {
  res.send('Hello Tom! ');
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}/`);
});

启动项目:node app.js
在这里插入图片描述
通过浏览器测试访问:
在这里插入图片描述
后续,我们对以上接口添加JWT验证,通过apisix进行访问。一般情况下后端服务的ip都是内网ip,外网是访问不到的。

关于在空项目目录下:执行 npm init 或npm init -y的区别?
在这里插入图片描述
在这里插入图片描述

配置上游

这里的上游,就是我们上面创建的后端服务项目
在这里插入图片描述
在这里插入图片描述

再创建一个路由

这个路由和之前创建的那个路由,不一样,这个路由要和我们的上游服务进行绑定,在apisix接收到此路由的url后,会根据此处的路由和上游的绑定关系,将请求转发到指定的上游。在此路由的设置上还可以绑定一些插件,如jwt-auth等,这样当apisix接收到匹配此路由的地址后,会先进行认证校验,校验成功后,才会将请求转发到指定的后端。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

流程是:客户端(浏览器)——>先请求apisix网关——>再转发给上游服务(后端服务)
由于在路由层面配置了JWT认证,所以这里会先进行JWT认证,认证成功后,才会转发到上游服务。
在这里插入图片描述
先获取JWT Token
在这里插入图片描述
为了方便测试:接下来使用APIPOST工具
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2309245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计SpringBoot+Vue.js人力资源管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

腾讯云扩容记录

腾讯云扩容&#xff1a; sudo yum install -y cloud-utils-growpart 安装扩容工具 sudo file -s /dev/vda1 有数据 sudo LC_ALLen_US.UTF-8 growpart /dev/vda 1 sudo resize2fs /dev/vda1 df -Th 完毕 以下是对执行的命令的详细解释以及背后的原理&#xff1a; 1. 安装 cloud…

Cherry Studio + 火山引擎 构建个人AI智能知识库

&#x1f349;在信息化时代&#xff0c;个人知识库的构建对于提高工作效率、知识管理和信息提取尤为重要。尤其是当这些知识库能结合人工智能来智能化地整理、分类和管理数据时&#xff0c;效果更为显著。我最近尝试通过 Cherry Studio 和 火山引擎 来搭建个人智能知识库&#…

完美解锁便捷版!

视频文件的种类繁多&#xff0c;包括常见的格式如MP4、AVI、MOV、MKV等。随着视频技术的发展&#xff0c;新的编码格式如HEVC&#xff08;H.265&#xff09;和AV1也逐渐被广泛应用&#xff1b;视频文件通常会经过压缩&#xff0c;并且每种格式都有其独特的编码方式和特性&#…

JAVA SE 包装类和泛型

文章目录 &#x1f4d5;1. 包装类✏️1.1 基本数据类型和对应的包装类✏️1.2 装箱和拆箱✏️1.3 自动装箱和自动拆箱 &#x1f4d5;2. 泛型✏️2.1 泛型的语法✏️2.2 泛型类的使用✏️2.3 裸类型(Raw Type)✏️2.4 擦除机制✏️2.5 泛型的上界✏️2.6 泛型方法✏️2.7 通配符…

人工智能AI在汽车设计领域的应用探索

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

Vue3国际化开发实战:i18n-Ally + vue-i18n@next高效配置教程,项目中文显示

本文详解 Vue3 国际化开发全流程&#xff1a;从安装 vue-i18nnext 到配置多语言文件&#xff08;JSON/YAML&#xff09;&#xff0c;结合 i18n-Ally 插件实现高效翻译管理。重点涵盖&#xff1a; 工程配置&#xff1a;创建 i18n 实例、模块化语言文件结构&#xff08;支持命名…

深入理解Spring @Async:异步编程的利器与实战指南

一、为什么需要异步编程&#xff1f; 在现代高并发系统中&#xff0c;同步阻塞式编程会带来两大核心问题&#xff1a; // 同步处理示例 public void processOrder(Order order) {// 1. 保存订单&#xff08;耗时50ms&#xff09;orderRepository.save(order); // 2. 发送短信…

java后端开发day25--阶段项目(二)

&#xff08;以下内容全部来自上述课程&#xff09; 1.美化界面 private void initImage() {//路径分两种&#xff1a;//1.绝对路径&#xff1a;从盘符开始写的路径 D:\\aaa\\bbb\\ccc.jpg//2.相对路径&#xff1a;从当前项目开始写的路径 aaa\\bbb\\ccc.jpg//添加图片的时…

【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random

文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…

(动态规划 最长递增的子序列)leetcode 300

这道题我第一眼反应就是暴力&#xff0c;但是暴力的话就是n*n-1*n-2*...n-(n-1) 也就是O(n^n)dfs做绝对超时 贪心也不行&#xff0c;这里是子序列&#xff0c;要考虑在ni的范围内考虑多种路线取最优&#xff0c;所以用动态规划 如何用动态规划呢&#xff1f; 答&#xff1a;…

小皮网站搭建

前提&#xff1a;小皮的安装下载 1、在www目录下创建一个新的文件夹&#xff0c;用来存放网站源码&#xff1b; 2、安装数据库管理工具phpMyadmin 3、新建数据表 添加字段 4、创建网站 5、前端的登录代码 注册 后端php 网页展示 登录成功跳转welcome.php

【CSS—前端快速入门】CSS 常用样式

CSS 常用 CSS 样式 1. 前端样式查询网站&#xff1a; MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用&#xff1a; 2.2 border 常见属性 保存代码&#xff0c;打开页面&#xff1a; 对于标签不同样式的…

(七)消息队列-Kafka 序列化avro(传递)

&#xff08;七&#xff09;消息队列-Kafka 序列化avro&#xff08;传递&#xff09; 客从远方来&#xff0c;遗我双鲤鱼。呼儿烹鲤鱼&#xff0c;中有尺素书。 ——佚名《饮马长城窟行》 本文已同步CSDN、掘金平台、知乎等多个平台&#xff0c;图片依然保持最初发布的水印&…

springboot使用redis

springboot使用redis redis-service.exe : 服务端,启动后不要关闭 redis-cli.exe : 客户端,访问redis中的数据 redisclient-win32.x86_64.2.0.jar : redis的图形界面客户端,执行方式是在这个文件的目录执行 java -jar redisclient-win32.x86_64.2.0.jar或者在这个jar包的目录…

【实战篇】【深度解析DeepSeek:从机器学习到深度学习的全场景落地指南】

一、机器学习模型:DeepSeek的降维打击 1.1 监督学习与无监督学习的"左右互搏" 监督学习就像学霸刷题——给标注数据(参考答案)训练模型。DeepSeek在信贷风控场景中,用逻辑回归模型分析百万级用户数据,通过特征工程挖掘出"凌晨3点频繁申请贷款"这类魔…

SpringBoot高校运动会管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.报名赛事代码2.用户登录代码3.保存成绩代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot框架开发的高校运动会管理系统项目。首先&#xff0c;这…

【Linux网络-HTTP协议】HTTP基础概念+构建HTTP

代码定位&#xff1a;南毅c/Linux - Gitee.com HTTP协议 介绍 虽然我们说&#xff0c;应用层协议是我们程序猿自己定的.但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP(超文本传输协议)就是其中之一。 在互联网世界中&#xff0c…

高频 SQL 50 题(基础版)_626. 换座位

高频 SQL 50 题&#xff08;基础版&#xff09;_626. 换座位 select(case when mod(id,2)!0 AND counts ! id then id1when mod(id,2)!0 AND counts id then idelse id -1end) as id,student fromseat,(selectcount(*) as countsfrom seat) as seat_counts order by id asc;

python第十一课:并发编程 | 多任务交响乐团

&#x1f3af; 本节目标 理解多线程/多进程/协程的应用场景掌握threading与multiprocessing核心用法学会使用asyncio进行异步编程开发实战项目&#xff1a;高并发爬虫引擎破解GIL锁的性能迷思 1️⃣ 并发编程三剑客 &#x1f3bb; 生活化比喻&#xff1a; 多线程 → 餐厅多个…