一、部署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日志来查看代理是否成功:

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐