焦作网站建设,网站建设录哪个科目,包头seo营销公司,优秀网页设计教程文章目录前言一、参考资料二、安装1.安装依赖2.安装apisix 2.53.apisix dashboard三、小试牛刀3.1 上游#xff08;upstream#xff09;3.2 路由#xff08;route#xff09;四、遇到的问题前言
APISIX 是一个微服务API网关#xff0c;具有高性能、可扩展性等优点。它基于…
文章目录前言一、参考资料二、安装1.安装依赖2.安装apisix 2.53.apisix dashboard三、小试牛刀3.1 上游upstream3.2 路由route四、遇到的问题前言
APISIX 是一个微服务API网关具有高性能、可扩展性等优点。它基于 nginxopenresty和 Lua 实现功能借鉴了Kong的思路将Kong底层的关系型数据库Postgres替换成了NoSQL型的 etcd这使得 APISIX 相较于 Kong 在性能上有了很大提升在启用各类插件的情况下Apache APISIX 的性能据说是 Kong 的 10 倍极具吸引力。 且相较于 Kong 来说源码更为简洁二次开发难度更低但是相对的开源时间较短在插件功能完备性上不如Kong比如缺少关于灰度相关的插件但是其已纳入Apache 基金会孵化社区也较为活跃后期的发展空间较为可观。 和传统的API网关相比APISIX 和 Kong 一样也是通过插件的形式来提供负载均衡、日记记录、身份鉴权、流量控制等功能。
一、参考资料
https://apisix.apache.org/zh/docs/apisix/installation-guide/#%E5%AE%89%E8%A3%85-etcd https://apisix.apache.org/zh/docs/apisix/installation-guide/ https://www.bookstack.cn/read/apisix-3.0-zh/3a3ad75e1267bfce.md http://www.lxiaoyu.com/p/77104
二、安装
本文安装环境为centos7 rpm安装方式 apisix2.5
1.安装依赖
etcdepel http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpmOpenResty源
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install -y openrestyetcd 3.4.15 etcd 版本取决于apisix版本 https://github.com/etcd-io/etcd/releases/download/v3.4.15/etcd-v3.4.15-linux-arm64.tar.gz
tar -xvf etcd-v3.4.15-linux-amd64.tar.gz cd etcd-v3.4.15-linux-amd64 sudo cp -a etcd etcdctl /usr/bin/启动etcd etcd 端口2379
2.安装apisix 2.5
yum install -y https://github.com/apache/apisix/releases/download/2.5/apisix-2.5-0.x86_64.rpm
apisix version
apisix startapisix 是基于nginx所以此处启动后会启动nginx进程当执行apisix stop时nginx进程不会被杀死此时重启后会出现一些问题最好停止后直接杀死nginx进程后重启 kill -9 $(ps aux | grep nginx | grep -v grep | tr -s | cut -d -f 2) 配置设置允许访问ip
cd /usr/local/apisix/conf
vi config-default.yaml安装地址 /usr/local/apisix端口 8090
3.apisix dashboard
3.1. 安装
yum install -y https://github.com/apache/apisix-dashboard/releases/download/v2.6/apisix-dashboard-2.6-0.x86_64.rpm3.2 配置conf
cd /usr/local/apisix/dashboard/conf
vi conf.yaml释掉allow_list 3.3 启动验证 启动nohup manager-api -p /usr/local/apisix/dashboard/ 在浏览器输入http://hostip:9000默认登录用户密码均为admin
3.4 启动脚本未测试
if [[ $1 start ]];thennohup manager-api -p /usr/local/apisix/dashboard/ /tmp/apisix-dashboard.log 21 systemctl start etcd
elif [[ $1 kill ]];thensystemctl stop etcdps -ef | grep /usr/local/apisix/dashboard/ | grep manager-api | awk {print $2} | xargs kill -9 ps -ef | egrep dashboard|etcd
fi
ps -eo etime,pid,command | egrep dashboard|etcd | grep -v grep 三、小试牛刀
以nacos和minio配置为例直接用dashboard配置
3.1 上游upstream
可以理解为nginx的upstream 这里配置一下nacos和user服务省略核心就是ip 端口
3.2 路由route
核心在路径和请求改写
路径配置/nacos/*路径改写保持原样 效果访问http://ip:9080/nacos/ 即可访问客户端最后的/不要省略 分析http://ip:9080/nacos/* 等于 upstream中配置的 http://192.168.150.1:8848/nacos 和nginx对比这里的代理前缀因为路径改写保持原样所以代理后会自动将路径保持原样进行访问那么如果代理的地址和路径配置不一致怎么办我们来配置一个user服务代理user服务的swagger原访问地址 http://localhost:8092/doc.html 路径配置/user/*路径改写正则改写匹配正则表达式^/user(/|$)(.*)转发路径模板/$2 效果访问http://ip:9080/user/doc.html 分析正则改写覆盖了/user前缀 http://ip:9080/user/doc.html 等于 http://127.0.0.1:8092/doc.html
四、遇到的问题
配置user服务访问F12发现 webjars 无法访问 配置了lim-count 为1 那么此时访问的所有请求都算作一次而加载doc.html时会请求多个/user路径下的请求此时除了第一个请求其他请求都会被拦截。关闭lim-count插件即可。代理kkfileview 预览pdf插件所有图片都加载失败 F12 图片加载的都是根路径此时代理的路径配置是file所以无法代理到file在路径配置上再添加一个路径/*