3

我有大约 130 个 sinatra Web 应用程序在 apache-passenger 服务器集群上运行。所有这些应用程序都是从通用代码库中克隆出来的,然后修改为拥有自己的身份验证密钥。除了身份验证密钥之外,大多数应用程序没有修改。单独应用程序的优点是我可以非常快速地对特定应用程序进行更改,而不会冒其他应用程序停机的风险。

但是,这些身份验证密钥本质上是配置。将配置存储在代码库中既不方便又直观上是错误的。我探索过的替代选项包括将配置存储在数据库中并将其缓存在内存中、每个应用程序的 apache 环境变量和共享的 json 文件。

有更好的选择吗?我错过了什么陷阱?

4

1 回答 1

0

听起来环境变量可能最适合您的目的,然后可以在您的应用程序中访问它,如下所示:

$ APPNAME_AUTH_KEY="saf3t33553" ruby -e "puts ENV['APPNAME_AUTH_KEY']"
saf3t33553

共享位置中的 JSON 文件,甚至是普通的 ruby​​ 文件也可以解决问题。将配置存储在数据库中听起来有点矫枉过正。

如果您想更深入地研究,这是我已经写了很多的主题:

编写可配置的应用程序(第 1部分,第 2 部分)(尤其请参阅第 2 部分中的“使用 Shell 环境进行配置”部分)

于 2012-11-09T15:05:14.987 回答