【问题标题】:Passing Meteor.settings to Bundled Meteor (with NginX and Passenger)将 Meteor.settings 传递给捆绑的 Meteor(使用 NginX 和Passenger)
【发布时间】:2014-06-02 11:13:42
【问题描述】:

我想使用 Nginx 和 Passenger 为 MeteorJS 应用程序设置多租户环境。 我将 Meteor 作为捆绑的 Node 应用程序运行,并且我的 NginX 站点配置包含多种:

server {
    listen 80;
    server_name <<URL>>;
    root <<BUNDLE_DIR>>/public;

    passenger_enabled on;
    passenger_set_cgi_param MONGO_URL <<MONGO URL>>;
    passenger_set_cgi_param ROOT_URL <<ROOT URL>>;

    #Meteor.settings
    passenger_set_cgi_param METEOR_SETTINGS '{ "public": { "tenant": "icter" } }';

    passenger_app_type node;
    passenger_startup_file main.js;

    passenger_min_instances 1;

}

如果我在 Meteor.settings 的客户端执行 console.log,它是未定义的。关于如何在我的应用程序中传递/访问 Meteor.settings 的任何想法?

【问题讨论】:

  • 我在服务器端代码中添加了一个console.log(process.env);,它被传递:App 5622 stdout: NODE_ENV: 'production', App 5622 stdout: PASSENGER_APP_ENV: 'production', App 5622 stdout: METEOR_SETTINGS: '{"public":{"tenant":"icter"}}',但我在 Meteor 中的对象仍然是空的。
  • 你解决过这个问题吗?我遇到了完全相同的问题:(
  • 在下面查看我自己的答案 ;-) 我已经通过 meteor.method 为客户端提供了“公共”设置。

标签: nginx meteor settings passenger


【解决方案1】:

Meteor.settings.public.tenant 在客户端不可用,但在服务器上可用。

所以我已将其更改为Meteor.settings.tenant 并通过一种方法使其可用(这实际上是一种更好的方法,因为在这种情况下它对应于该租户的特定配置)。因此,通过此设置,我不必为客户端提供所有租户的配置,而只需为租户配置。

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多