apisix Admin API配置路由、证书
这里记录了一些个人常用的基本配置,其他详细配置参考官方文档(https://apisix.incubator.apache.org/zh/docs/apisix/3.9/getting-started/README/)。
配置前准备
1、安装yq工具
wget https://github.com/mikefarah/yq/releases/download/v4.44.2/yq_linux_amd64.tar.gz tar zxf yq_linux_amd64.tar.gz cp yq_linux_amd64 /usr/local/bin/yq
2、配置admin_key变量
admin_key=$(yq '.deployment.admin.admin_key[0].key' /usr/local/apisix/conf/config.yaml | sed 's/"//g')
3、安装jq工具
yum -y install jq
配置路由
一、配置反向代理
配置一个uri为/test1/,转发到上游服务器192.168.1.110的80端口。
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "test", "uri": "/test1/*", "upstream": {"nodes": { "192.168.1.110:80": 1 } } }'
二、配置301跳转。
这里使用redirect插件配置了一个自动加/的功能。
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "test301", "uri": "/test", "plugins": { "redirect": { "uri": "/test/", "ret_code": 301 } } }'
三、查看所有路由信息
curl http://127.0.0.1:9180/apisix/admin/routes -H "X-API-KEY: $admin_key " | jq
四、查看所有路由的id信息
这里的id是唯一信息,如果配置的id重复了,会覆盖之前的配置,就相当于是修改路由操作。
curl http://127.0.0.1:9180/apisix/admin/routes -H "X-API-KEY: $admin_key " | jq '.list[].value.id'
五、负载均衡
这里只配置了轮训模式,nodes中后面的数值是权重,数值越大,权重越高。
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "test-load", "uri": "/test-load/*", "upstream": { "type": "roundrobin", "nodes": { "192.168.1.110:80": 1, "192.168.1.111.:80": 1 } } }'
六、健康检查
这里介绍主动健康检查,设置每3秒钟检查一次,成功1次则认为是健康(状态码200,302),失败2次则认为不健康,流量将不被转发到该节点。被动模式参考官网配置。
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "test-rewrite", "uri": "/test-rewrite/*", "upstream": { "type": "roundrobin", "nodes": { "192.168.110.18:80": 1, "192.168.110.17:80": 1 }, "checks": { "active": { "timeout": 5, "http_path": "/", "healthy": { "interval": 3, "successes": 1 }, "unhealthy": { "interval": 3, "http_failures": 2 } } } } }'
使用健康检查后,可以使用 http://127.0.0.1:9090/v1/healthcheck接口对状态进行查看,比如
curl http://127.0.0.1:9090/v1/healthcheck | jq '.[].nodes '| jq '.[] | select (.status == "unhealthy")'
七、重写
这里使用proxy-rewrite插件,将开头为/test-rewirte/的url去掉,将后面的所有内容转发给上游服务器。
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "test-rewrite", "uri": "/test-rewrite/*", "plugins": { "proxy-rewrite": { "regex_uri": ["^/test-rewrite/(.*)$", "/$1"] } }, "upstream": { "nodes": { "192.168.1.110:80": 1 } } }'
八、证书
1、创建ssl对象
curl http://127.0.0.1:9180/apisix/admin/ssls/cy.cqjyck.com -H "X-API-KEY: $admin_key" -X PUT -d ' { "cert" : "'"$(cat /home/test/ssl/www.test.com.pem)"'", "key": "'"$(cat /home/test/ssl/www.test.com.key)"'", "snis": ["www.test.com"] }'
2、创建路由
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -H "X-API-KEY: $admin_key" -d ' { "id": "www.test.com", "hosts": ["www.test.com"], "uri": "/test/*", "plugins": { "proxy-rewrite": { "regex_uri": ["^/test/(.*)$", "/$1"] } }, "upstream": { "nodes": { "192.168.1.110:80": 1 } } }'
3、本地验证
curl --resolve 'www.test.com:9443:127.0.0.1' https://www.test.com:9443/test/ -k -vvv
标签:http,Admin,admin,API,key,test,apisix From: https://www.cnblogs.com/NanZhiHan/p/18420911