feat(配置): gm-server的跳转改为查询数据库

This commit is contained in:
luying
2023-04-15 19:03:42 +08:00
parent cd2ca7ff19
commit 3ed86c9bbc
2 changed files with 27 additions and 32 deletions

View File

@@ -1,4 +1,30 @@
import { RegionModel } from '@db/Region';
import proxy from 'egg-http-proxy-middleware';
module.exports = proxy;
module.exports = () => {
return async function (ctx, next) {
if(!ctx.app.config.envToHost) {
let envToHost = new Map<string, string>();
let regions = await RegionModel.getAllRegion();
for(let { env, gmLink } of regions) {
envToHost.set(env, gmLink);
}
ctx.app.config.envToHost = envToHost;
}
let options = {};
for(let [env, domain] of ctx.app.config.envToHost) {
options[`/api/${env}/`] = {
target: domain,
changeOrigin: true,
secure: true,
pathRewrite: function(path) {
console.log('proxy', path, path.replace(`/api/${env}/`, '/api/'))
return path.replace(`/api/${env}/`, '/api/')
}
}
}
return proxy(options)(ctx, next);
};
};

View File

@@ -76,37 +76,6 @@ export default (appInfo: EggAppInfo) => {
maxFileSize: 1024,
};
let regions = [ // 大区数据
{ env: 'stable', name: "常山少年", domain: 'http://zyz_gm.trgame.cn' },
{ env: 'alpha', name: "测试服", domain: 'http://pinus_gm_test.trgame.cn' },
{ env: 'dev', name: "开发服", domain: 'http://zyzdev_gm.trgame.cn' },
{ env: 'isbn', name: "办好福", domain: 'http://zyz_isbn_gm.trgame.cn' },
{ env: 'isbnhk', name: "海外审核服", domain: 'http://zyz_isbn_gm_hk.trgame.cn' },
// 37测试服组
{ env: 'sq1', name: "37测试1服", domain: 'http://gm-sgzzyz.yev242.com' },
{ env: 'sq3', name: "小范围对外测试", domain: 'http://sq3-web-sgzzyz.yev242.com' },
{ env: 'sq4', name: "渠道二测", domain: 'http://sq6-web-sgzzyz.yev242.com' },
{ env: 'sq7', name: "精英测试", domain: 'http://sq8-web-sgzzyz.yev242.com' },
{ env: 'sq9', name: "渠道吸量", domain: 'http://sq10-web-yjz.yev242.com' },
// 公测自营
{ env: 'zy1', name: "公测自营", domain: 'http://yjz-gm-1.yev242.com' },
];
config.regions = regions;
let httpProxy: any = {};
for(let { env, domain } of regions) {
httpProxy[`/api/${env}/`] = {
target: domain,
changeOrigin: true,
secure: true,
pathRewrite: function(path) {
console.log('proxy', path, path.replace(`/api/${env}/`, '/api/'))
return path.replace(`/api/${env}/`, '/api/')
}
}
}
config.proxy = httpProxy;
// the return config will combines to EggAppConfig
return {
...config,