Play Framework 2:如何访问运行应用程序的域

时间:2013-11-11 18:35:21

标签: playframework-2.0

这是我的问题:我打算在不同的域(不同的服务器)上部署相同的应用程序。请不要问为什么......只是按原样使用;)

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

如何访问此信息?

2 个答案:

答案 0 :(得分:0)

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

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

分阶段的应用入门脚本需要-Dsystem.property.name=value并将其转发给jvm,以便您可以使用它。

答案 1 :(得分: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" }
]}