多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 概念 * gateway默认会将服务名作为路由地址,比如服务名为jpower-system,那么我们就可以通过`http://gateway/jpower-system/**`进行请求转发 * 有些时候,我们需要对网关进行额外的配置,比如做个反向代理、转发服务名改为其他名称。这种情况,一般需要前往bootstrap.yml文件进行配置,可是这样带来的问题是每次修改都需要重新打包,可见这并不是一个可以采纳的解决方案,为了解决这类问题动态网关的方案由此而来。 * JPower采用了基于Nacos定制轻量级、高拓展性的动态网关方案 * 配置文件将保存在Nacos中,若网关配置有改动,直接修改发布便可即时刷新 ## 如何配置 1. 找到对应的配置文件`jpower-gateway-dev.json` ![](https://img.kancloud.cn/4b/f7/4bf79c737691dd90d5776dccacaa5225_2444x1396.png) 2. 到nacos添加对应配置(**如果有其他同名的服务注册,需要把order的值改成-1或者更小,否则无法转发到本地**) ![](https://img.kancloud.cn/fa/ac/faac6facdcf7d0d4cbf1a22447a9e3d8_3274x1486.png) 3. 为了方便测试,我们先把jpower-gateway服务里的鉴权拦截器代码注释掉,让其不进行鉴权 ![](https://img.kancloud.cn/3b/8e/3b8e0044c8456d78e949c9c50ce615fb_1826x1305.png) 4. 启动jpower-gateway以及jpower-system ![](https://img.kancloud.cn/a6/be/a6be4f8cb0b9139dd0fa076f2e094dbb_358x135.png) 5. 访问[http://localhost/github](http://localhost/github),发现反向代理配置成功 ![](https://img.kancloud.cn/ea/ab/eaabfae5a1a8c24f045127de239aea15_2840x1772.png) 6. 然后我们访问下[http://localhost/githubx](http://localhost/githubx), 发现返回的是404 ![](https://img.kancloud.cn/f3/24/f324f2e599f713c4038a635990ebb48f_1794x554.png) 7. 前往nacos编辑配置,把请求路径/github改为/githubx,并保存 ![](https://img.kancloud.cn/7b/17/7b171e25a233e9e8ecb2dd19dd65def9_1190x1430.png) 8. 不用重启gateway,再次访问[http://localhost/githubx](http://localhost/githubx)发现动态网关配置已经生效 ![](https://img.kancloud.cn/da/e7/dae734495afdf70368f22d9e65c1136a_3528x1768.png) 9. 测试完成后记得把我们刚才注释掉的鉴权代码要恢复 ![](https://img.kancloud.cn/94/be/94be386f977faa7c73bdb8bab9125dfa_1796x1244.png) ## 结尾语 * 动态网关配置文件的命名规则取决于网关服务名加当前运行的环境来决定,例如当前网关服务名叫jpower-gateway,服务运行环境为dev,那动态网关配置文件名则叫`jpower-gateway-dev.json`。 * JPower封装的动态网关参数为官方的`RouteDefiintion`类属性,一切按照官方配置即可。