问题:

项目开始,nginx是通过匹配control来转发的,后面随着业务不停增加,每次都需要修改nginx,甚是麻烦,所以决定为不同的服务取一个名称——服务域名称,然后我们通过匹配服务域名称的模式就解决这个不同修改配置的问题了。

刚开始的nginx配置:

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),目前想到两种方式:

1、提供新老版本的api接口;
2、通过nginx配置重写(重新转发)——当时不会,只是知道nginx强大,应该能够支持;

所以查找了一下,以作备忘:

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

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


qngyun1029
974 声望15 粉丝