安くて簡単な答え:
1) VPS で staging.domainname.com を指定します。
2) ステージング用の仮想ホストを追加し、アプリのステージング コピーを指定します。
3) ステージング環境設定を追加します。(Rails で新しい環境を定義できることをご存知ですか? 楽しいことです!) これは、production.rb を staging.rb にコピーし、必要に応じて微調整し、database.yml を更新するだけで簡単だと思います。
4) ActionController で、次のようなコードを追加します。
if (ENV["RAILS_ENV"] == "staging")
before_filter :verifies_admin
end
あなたが望むものはどこverifies_admin
にありますか。安価で簡単な HTTP 基本認証を使用することをお勧めします。
def verifies_admin
authenticate_or_request_with_http_basic do |username, password|
username == "foo" && password == "bar"
end
end
これにより、支払いサイトがあなたにインバウンド リクエストを送信している場合、その支払いサイトへの接続が切断される可能性があることに注意してください。ただし、これは簡単に修正できます (適切なコントローラーおよび/またはアクションの before_filter をオフにするだけです)。
より良い答え:
1) 通常の VPS と同じイメージから構成された 2 つ目の VPS を購入するか、同じベアメタルからのインストール スクリプトから構成された VPS を購入します (これについては Capistrano & Deprec が気に入っています)。
2) staging.domainname.com をポイントします。
3) それ以外の場合は、他のオプションと同じです。
考慮事項:
1) ステージング データベースも必要ですか? おそらく、特にスキーマの変更をテストする場合はそうでしょう。
2) ステージング システムと本番システムの間でデータを移動するための機能が必要ですか?
3) ステージング アプリケーションの壊滅的な障害により、メイン アプリケーションが停止することはありますか? 答えがノーであることを願っています。