经过nginx重写(rewrite)将老版本api接口转发到新版本接口上

问题:nginx

项目开始,nginx是经过匹配control来转发的,后面随着业务不停增长,每次都须要修改nginx,甚是麻烦,因此决定为不一样的服务取一个名称——服务域名称,而后咱们经过匹配服务域名称的模式就解决这个不一样修改配置的问题了。web

刚开始的nginx配置:api

location ~* /api/AppVersion {
    proxy_pass http://192.168.1.88:8888;
}

目前指望的配置(serviceName后面包含n多控制器):安全

location ~* /api/Business {
    proxy_pass http://192.168.1.88:8888;
}

若是只是web站点,这么作就差很少ok了,可是咱们有一个app,老版本须要升级,只能调用第一中接口,可是咱们新版本的接口都加上了serviceName/api/Business/AppVersion),目前想到两种方式:app

一、提供新老版本的api接口;
二、经过nginx配置重写(从新转发)——当时不会,只是知道nginx强大,应该可以支持;code

因此查找了一下,以做备忘:接口

location ~* /api/AppVersion/GetVersion {
    rewrite ^ http://192.168.1.88:8888/api/Business/AppVersion/GetVersion;
}

那么当你调用老接口/api/AppVersion/GetVersion的时候,nginx会自动帮你转发到新接口上/api/Business/AppVersion/GetVersion,也不须要修改代码,安全方便;域名

相关文章
相关标签/搜索