上文《Apisix微服务网关实战(四)apisix dashboard结合nacos配置动态网关路由》我们成功的实现了访问动态路由,但是新的问题又出来了:
1、微服务中不止user-center一个微服务,还有shop-center,orders-center等微服务。 2、要求通过同一个域名,区分不同的url前缀进行访问即可。
此时的话,要满足上诉的需求,那么我们需要在apisix上配置多个路由,但是可以看到前面我们在路由配置里面设置的访问路径是/*,如下图:
那如果要进行前缀匹配的话,我们肯定是需要在路径上添加前缀的,如果我们添加上/user/*怎么样呢?
添加完保存后我们测试访问下:
http://www.test.com:9080/user/helloworld/lisi
访问效果是:
not found?什么鬼,原来原因是在后端服务里面没有/user/helloworld/${str}这个路径,只有/helloworld/${str}。所以这里就需要涉及到url改写了,我们在刚才创建的路由里面添加一个路径正则改写,内容如下:
匹配正则表达式: ^/user/(.*) 转发路径模板:/$1
修改示例图如下:
然后我们保存再访问下:
就可以看到成功的访问了。
所以URI前缀的话,我们的实施方案就是:
1、创建多个路由,每个路由配置到对应的服务。 2、每个路由的访问路径上添加一个前缀。 3、通过请求改写把添加的前缀进行忽略,从而达到访问多个后台服务的目的。
比如我们在创建一个good的路由
最后访问测试下:
以上就是在apisix上配置不同前缀访问不同服务的案例。
还没有评论,来说两句吧...