3

Apache Passenger サーバーのクラスターで約 130 の Sinatra Web アプリを実行しています。これらのアプリはすべて汎用コードベースから複製され、独自の認証キーを持つように変更されています。ほとんどのアプリには、認証キー以外の変更はありません。個別のアプリの利点は、他のアプリのダウンタイムを危険にさらすことなく、特定のアプリに非常に迅速に変更を加えることができることです。

ただし、これらの認証キーは本質的に設定です。構成をコードベースに保存するのは不便であり、直感的に間違っています。私が検討した代替オプションには、構成をデータベースに保存してメモリにキャッシュすること、アプリごとの apache 環境変数、および共有 json ファイルが含まれます。

より良いオプションはありますか?見逃した落とし穴はありますか?

4

1 に答える 1

0

環境変数が目的に最も適しているように思われます。この変数には、次のようにアプリでアクセスできます。

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

共有された場所にあるJSONファイル、またはプレーンなrubyファイルでもうまくいきます。構成をデータベースに保存するのはやり過ぎに聞こえます。

あなたがより深く掘り下げたいのであれば、これは私がかなり書いたトピックです:

構成可能なアプリケーションの作成(パート1パート2)(特にパート2の「構成のためのシェル環境の使用」セクションを参照)

于 2012-11-09T15:05:14.987 に答える