## 概念
* 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`类属性,一切按照官方配置即可。
- 序言
- 开发环境准备
- 环境要求
- 环境安装
- 基础环境安装
- Nacos安装
- Sentinel安装
- 插件安装
- 导入工程
- 运行工程
- 工程测试
- JPower特性
- 系统启动器
- 多终端令牌认证
- 系统鉴权
- 鉴权API
- 鉴权配置
- API权限配置
- 接口放行配置
- 数据权限
- redis缓存
- 动态网关
- 聚合文档
- SaaS多租户
- 概念
- 使用
- Xss防注入
- 日志记录
- 操作日志&错误日志
- SQL打印
- feign请求日志&配置
- gateway日志
- 服务日志打印
- 导入导出
- 字典查询
- 系统文件上传下载
- 接口监控
- 代码生成器
- 配置文件共享
- Mybatis过滤器
- 配置说明
- 高级实战
- nacos动态配置
- Seata分布式事务
- 简介
- docker启动
- 微服务配置
- 微服务远程调用
- 声明式服务调用 Feign
- 熔断机制 Sentinel
- sentinel流控
- 简介
- 微服务配置
- 配置nacos对接
- APM监控&链路追踪
- 简介
- 安装
- 微服务接入
- SpringBootAdmin监控
- ELK分布式日志追踪系统
- ELK简介
- ELK一键部署
- 微服务日志对接ELK
- JPower-Chat
- 配置说明
- 生产部署
- docker部署
- docker安装
- docker-compose安装
- harbor安装
- 部署步骤
- 版本升级
- 1.0.1升级到2.0.0
- 2.0.0升级到2.0.2
- 2.0.2升级2.1.0
- 2.1.0升级到2.1.1
- 2.1.1升级到2.1.2
- 2.1.2升级到2.1.4