从多个子域提供 Meteor 应用程序的动态 ROOT_URL

问题描述 投票:0回答:2

我有一个在多个子域上运行的应用程序(每个租户一个)。在开发环境中效果很好,因为我没有在那里设置

ROOT_URL
的值。

但是,当我将应用程序部署到生产环境时,Meteor 要求我设置

ROOT_URL
环境变量。

我无法将

ROOT_URL
的值设置为环境变量中的特定域,因为应用程序在多个子域上运行。我通过代码设置
ROOT_URL
值的最佳方法是什么?

我愿意接受更好的解决方案。

meteor
2个回答
1
投票

该变量只需要在应用程序启动时定义,因此您可以通过使用如下脚本启动应用程序实例来轻松构建多租户环境:

#!/bin/bash

export PORT=3000
export ROOT_URL=https://domain1.example.com
node /path/to/your/app/bundle/main.js

export PORT=4000
export ROOT_URL=https://domain2.example.com
node /path/to/your/app/bundle/main.js

exit 0

0
投票

您可以更改代码中的环境变量。你可以做这样的事情。

Meteor.startup(function() {
    //do some logic...
    //...
    process.env.ROOT_URL = 'http://subdomain1.mydomain.com';
});

编辑:您还可以尝试使用meteor cluster包,我认为它可以做您想要的事情。 https://github.com/meteorhacks/cluster

© www.soinside.com 2019 - 2024. All rights reserved.