0

这是我的问题:我计划在不同的域(不同的服务器)上部署相同的应用程序。拜托,不要问为什么……就照原样吧;)

好吧,我需要这两个应用程序来加载不同的 cfg 文件,并且我想使用站点域作为在启动时加载正确的 cfg 文件的密钥。

如何访问此信息?

4

2 回答 2

0

您通常只能通过请求中的主机访问它,因此不会为您削减它。在启动应用程序的每个实例时,我只需指出具有 config-file-system 属性的域特定配置文件。

查看配置文件选择属性: http ://www.playframework.com/documentation/2.2.x/Configuration

暂存的应用程序启动脚本将-Dsystem.property.name=value其转发到 jvm,因此您应该能够使用它。

于 2013-11-11T20:11:21.253 回答
0

我解决了在操作系统中设置环境变量的问题:

有关更多详细信息,请参阅此链接

https://github.com/typesafehub/config#optional-system-or-env-variable-overrides

我选择了这个解决方案,因为我需要以下两者:
    - 由所有实例共享的主要大型配置数据
    集 - 特定于每个实例的自定义小型配置数据集

我最终得到:
    1)创建一个包含所有自定义设置数组的单个 JSON 文件
    2)设置一个包含应用程序域名的 ENV 变量。
        我使用 ENV 变量作为访问这个 JSON 数组的键。

在我的操作系统中:

export ENV_VAR='www.mydomain2.net'

在我的 application.conf 中:

my.domain.name=${?ENV_VAR}

我的 JSON 是这样的:

{ "domains": [
    "www.mydomain1.net": { "setting1": "aValue1", "setting2": "aValue2" },
    "www.mydomain2.net": { "setting1": "aValue3", "setting2": "aValue4" }
]}
于 2013-11-14T22:57:50.470 回答