![cover](https://img-blog.csdnimg.cn/5a8141d2482e40a892e857730eb47905.png)
apisix+nacos 实现网关和注册中心
一、部署apisix和nacosapisix通过官方文档docker-compse部署nacos通过docker方式部署。1、部署apisix2、部署nacos通过docker部署docker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_MAX=512m -e JVM_XMN=256m -p 8848:
·
一、部署apisix和nacos
apisix通过官方文档docker-compse部署
nacos通过docker方式部署。
1、部署apisix
2、部署nacos
1)、通过docker部署
docker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_MAX=512m -e JVM_XMN=256m -p 8848:8848 -d nacos/nacos-server:latest
通过控制台(图形界面可以上线和下线服务)
http://192.168.0.73:8848/nacos/#/login 用户名和密码都是nacos,注意修改。
2)、测试是否成功:
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
二、apisix配置使用nacos来实现路由转发
1、在 apisix配置文件中新增对discovery的支持
路径:/data/apisix-docker/example/apisix_conf/config.yaml (注:我将apisix_conf/config.yaml挂载到了apisix docker 的相应目录下,所以我在外面修改后直接重启容器就可以生效了。)
新增配置如下:
discovery:
nacos:
host:
- "http://192.168.0.73:8848"
prefix: "/nacos/v1/"
fetch_interval: 30 # default 30 sec
weight: 100 # default 100
timeout:
connect: 2000 # default 2000 ms
send: 2000 # default 2000 ms
read: 5000 # default 5000 ms
最后重启下apisixz 容器,命令如下: docker restart apisix_apisix_1
2、给apisix新增一个路由:
通过amdin api 来添加:
http://192.168.0.73:9080/apisix/admin/routes/3
ps: 当然你也可通过dashborad来添加:
内容如下:
{
"uris": ["/nacos/*"],
"upstream":{
"service_name": "nacos-admin",
"type": "roundrobin",
"discovery_type": "nacos"
}
}
3、通命令行注册一个服务
[root@localhost apisix_conf]# curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos-admin&ip=192.168.0.73&port=8848'
ok[root@localhost apisix_conf]#
三、结果验证:
经过上面的步骤应该就成功了,我们最后访问下apisix网关,看有没有代理到我们后端服务:
此外,我们还可以看nginx日志来查看代理是否成功:
更多推荐
所有评论(0)