diff --git a/shared/db/Serverlist.ts b/shared/db/Serverlist.ts index bd1e01a92..220500593 100644 --- a/shared/db/Serverlist.ts +++ b/shared/db/Serverlist.ts @@ -93,6 +93,9 @@ export default class Serverlist extends BaseModel { @prop({ required: true, type: Maintenance, _id: false }) maintenance: Maintenance + @prop({ required: false }) + isMain: boolean; + public static async getAllServerList() { let id = await CounterAllModal.getCounter(COUNTER.SERVER); let result: ServerlistType[] = []; diff --git a/web-server/app/middleware/proxy.ts b/web-server/app/middleware/proxy.ts index cbd46fa81..23f678690 100644 --- a/web-server/app/middleware/proxy.ts +++ b/web-server/app/middleware/proxy.ts @@ -54,10 +54,12 @@ module.exports = () => { let envToHost = ctx.app.config.envToHost||new Map(); let sidToHost = new Map(); let servers = await ServerlistModel.getAllServerList(); - for(let { id, env } of servers) { + for(let { id, env, isMain } of servers) { let webHost = envToHost.get(env); sidToHost.set(id.toString(), webHost); + if(isMain) sidToHost.set('main', webHost); } + if(!sidToHost.has('main') && servers.length > 0) sidToHost.set('main', envToHost.get(servers[0].env)); ctx.app.config.sidToHost = sidToHost; } @@ -69,7 +71,8 @@ module.exports = () => { '/cb/refundioscallback', '/cb/sendgiftcode', '/cb/getrolebyserver', - '/cb/getserverinfo' + '/cb/getserverinfo', + '/cb/getrolebyuid', ]; for(let str of urls) { if(url && url.startsWith(str)) { @@ -91,5 +94,7 @@ module.exports = () => { case '/cb/getrolebyserver': case '/cb/getserverinfo': return ctx.query.server_id.toString(); + case '/cb/getrolebyuid': + return 'main'; } } \ No newline at end of file diff --git a/web-server/config/config.alpha.ts b/web-server/config/config.alpha.ts index cc1df7dfc..6903a6f26 100644 --- a/web-server/config/config.alpha.ts +++ b/web-server/config/config.alpha.ts @@ -4,6 +4,7 @@ import defaultConfig from './config.default'; export default (appInfo: EggAppInfo) => { const config = {} as PowerPartial; + config.middleware = [ 'parmsDecode', 'getIp', 'proxy' ]; config.mongoose = { url: 'mongodb://dbop:zyzDev2021@dds-8vb5c74ba4263da41.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb5c74ba4263da42.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-506991391', // 内网 options: { useNewUrlParser: true, useUnifiedTopology: true },