Apache APISIX 的安装和配置请求转发url匹配
安装apisix套件
创建一个apisix文件夹,在apisix文件夹下再创建一个etcd_data文件夹,用来持久化etcd的数据
在apisix文件夹下 新建3个文件 config.yaml, dashboard_conf.yaml, docker-compose.yaml, 分别对应apisix的配置文件 dashboard的配置文件 docker-compose文件
结构目录如下

config.yaml
apisix:
node_listen: 9080 allow_admin:
- 0.0.0.0/0 #允许所有网段ip访问, 可改为指定网段 admin_key:
- name: "admin"
key: edd1c9f034335f136f87ad84b625c8f1
role: admin - name: "viewer"
key: 4054f7cf07e344346cd3f287985e76a2
role: viewer etd:
host:
- "http://etcd:2379"
prefix: "/apisix"
timeout: 30 #单位 秒
dashboard_config.yaml
conf:
listen:
host: 0.0.0.0 # 面板监听的地址
port: 9000 # 面板监听的端口
allow_list: # 白名单IP段列表
- 0.0.0.0/0
etcd:
endpoints: - "http://etcd:2379" authentication:
secret:
secret # secret for jwt token generation.
# NOTE: Highly recommended to modify this value to protect `manager api`.
# if it's default value, when `manager api` start, it will generate a random string to replace it.
expire_time: 3600 # jwt token 过期时间 单位 秒
users: # - username: admin # 面板登录用户名密码
password: admin
- username: user
password: user plugins: # 插件列表- api-breaker
- authz-keycloak
- basic-auth
- batch-requests
- consumer-restriction
- cors
# - dubbo-proxy
- echo
# - error-log-logger
# - example-plugin
- fault-injection
- grpc-transcode
- hmac-auth
- http-logger
- ip-restriction
- jwt-auth
- kafka-logger
- key-auth
- limit-conn
- limit-count
- limit-req
# - log-rotate
# - node-status
- openid-connect
- prometheus
- proxy-cache
- proxy-mirror
- proxy-rewrite
- redirect
- referer-restriction
- request-id
- request-validation
- response-rewrite
- serverless-post-function
- serverless-pre-function
# - skywalking
- sls-logger
- syslog
- tcp-logger
- udp-logger
- uri-blocker
- wolf-rbac
- zipkin
- server-info
- traffic-split
docker-compose.yaml
version: '3'
services:
gateway:
image: apache/apisix
volumes:
- ./config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on: etcd
ports:
- "9080:9080"
- "9443:9443" dashboard:
image: apache/apisix-dashboard
volumes:
- ./dashboard_conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
ports:
- "9000:9000"
depends_on: gateway etcd:
image: bitnami/etcd
user: root
volumes:
- ./etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
配置url转发
访问 本地IP:9000
用户名密码 admin admin(dashboard_conf.yaml里有配置)
添加上游
左侧菜单--上游 --创建
输入名称 描述, 选择负载均衡算法 配置后端服务主机名(域名或ip也可以), 设置转发协议 连接超时等,点击下一步,提交

添加路由转发
左侧菜单--路由--创建
全匹配转发
填写域名和匹配的路径,一般的路径规则是 域名/服务名/方法名
路径一栏可以填写指定xx开头的路径请求转发到指定的上游,也就是后端服务。 路径改写选择 保持原样,则访问的时候是 xxx/Weatherforecast/all, 转发到后端服务的时候也是这样的

下一步 选择上游,选择已经建好的上游
路径匹配改写
比如请求网关是 /test/order/all, 然后后端接收的路径应该是 /order/all, 中间的test只是充当服务名的标识。
路径 填 /test/* 匹配/test/ 这种请求, /test 是不满足的
路径改写选正则改写
匹配 /^test/(.*) 表示匹配/test/之后的部分,作为第一个匹配到的值,变量名为$1
转发路径模板 /$1 即取上一个匹配后的参数拼接转发

下一步 选择上游,选择已经建好的上游
性能测试
R7 3700X 16G
正则匹配后的路径改写转发
正则匹配的确会影响性能,不过1w+的rps也够看了

全匹配,无改写的转发
3w+的rps。强啊, 这个.net 5.0 api原生4w+, 我愿称之为最强api网关

Apache APISIX 的安装和配置请求转发url匹配的更多相关文章
- Nginx应用-Location路由反向代理及重写策略  请求转发-URL匹配规则   NGINX Reverse Proxy
		
NGINX Docs | NGINX Reverse Proxy https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ ...
 - Error-MVCr:找到了多个与 URL 匹配的控制器类型。如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况。
		
ylbtech-Error-MVCr:找到了多个与 URL 匹配的控制器类型.如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况. 1.返回顶部 1. 找到了多个与 URL 匹配的 ...
 - 转:Nginx+Apache环境的安装与配置
		
转:http://www.server110.com/nginx/201404/8817.html 我们依然尽可能采用yum来安装我们需要的软件,由系统官方维护的软件,其安全性和稳定性都值得信赖,并且 ...
 - Nginx+Apache环境的安装与配置
		
我们依然尽可能采用yum来安装我们需要的软件,由系统官方维护的软件,其安全性和稳定性都值得信赖,并且容易管理,升级方便,但是在CentOS和RHEL的官方yum源中暂时没有Nginx等软件包,所以我们 ...
 - Apache服务器的安装与配置
		
文档:http://httpd.apache.org/docs/2.4/ 指令:http://httpd.apache.org/docs/2.4/mod/core.html 一.配置文件 语法 * 主 ...
 - Nginx配置请求转发location及rewrite规则
		
一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这 ...
 - Apache Tomcat 7 安装与配置
		
下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomca ...
 - Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)
		
如果您能点开这篇文章,说明您已对熟悉Apache HTTP Server(下文用Apache简称)配置的重要性已很清楚了,本文不在赘述,直接介入正题,请往下阅读: 为便于阅读,列出文章目录: 一.Ap ...
 - Linux CentOS 7 下 Apache Tomcat 7 安装与配置
		
前言 记录一下Linux CentOS 7安装Tomcat7的完整步骤. 下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tom ...
 
随机推荐
- Effective C++ 总结笔记(二)
			
二.构造/析构/赋值运算 05.了解C++默默编写并调用那些函数 如果自己不声明, 编译器就会暗自为class创建一个default构造函数.一个copy构造函数.一个copy assignment操 ...
 - 【linux系统】命令学习(六)awk sed grep 与管道的使用
			
程序运行环境输入与输出 标准输入0 read a;echo $a 标准输出1 echo cesh 错误输出 ls notr 管道重定向 管道与管道之间可以重定向 管道与文件之间可以重定向 用于写入 将 ...
 - [源码解析] PyTorch 分布式(7) ----- DistributedDataParallel 之进程组
			
[源码解析] PyTorch 分布式(7) ----- DistributedDataParallel 之进程组 目录 [源码解析] PyTorch 分布式(7) ----- DistributedD ...
 - 关于Cefsharp无法拖动Dom元素的解决方法
			
如图所显示,Cefsharp在嵌入网页,页面有对Dom元素的拖动的操作,独立在浏览器上对网页元素的拖动是没有问题的,但是嵌入到Cefsharp上显示禁用的图标.排查了H5的代码,没有写入禁用拖动的操作 ...
 - <C#任务导引教程>练习六
			
//54五名学生参加了两门课程的考试,试输入成绩,统计出各科的最高分,最低分,平均分及每个学生的平均成绩(要求用对话框显示成绩统计结果)using System;using System.Window ...
 - C#练习2
			
using System;class Class1{ public int vlaue = 0;}class Test{ static void Main() { int v1 = 0; int v2 ...
 - X-MagicBox-820的luatOS之路连载系列4
			
上次说到定位成功后,显示的数据准确性问题.专门查询了下我所在地区的经纬度信息. MagicBox的显示数据是这样的: 网络上查到的经纬度数据是这样的: 可以看出定位精度还可以,毕竟我这个查询的数据没有 ...
 - Nocalhost 为 KubeSphere 提供更强大的云原生开发环境
			
作者简介 张海立(驭势科技云平台研发总监):开源爱好者,云原生社区上海站 PMC 成员,KubeSphere Ambassador:日常云原生领域工作涉及 Kubernetes.DevOps.可观察性 ...
 - springboot与数据访问之jdbc
			
官网的starthttps://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter 添加依 ...
 - Atom编辑器速查
			
简介 Atom 是 Github 开源的文本编辑器,相当于半个IDE.其特点如下: (1)免费开源,多平台支持(Windows.Mac.Linux): (2)界面美观.现代化,使用舒适: (3)多文件 ...