2

現在、本番環境のDjangoサイトを書き直しています。新しいサイトを古いサイトと並行して展開し、次のスキームを使用してトラフィックを古いサイトから新しいサイトにゆっくりと迂回させたいと考えています。

  • 新しいアカウントは新しいサイトに移動します
  • 既存のアカウントは古いサイトに移動します
  • 既存のアカウントには、新しいサイトにオプトインする機会が提供される場合があります
  • 新しいサイトに転用されたアカウントはオプトアウトして古いサイトに戻される場合があります

Cookieが関係していること、およびNginxがCookieに基づいてリクエストを書き換えることができることは私には明らかです。

クッキーがどのように設定されるかは、私には少し謎のままです。鶏が先か卵が先かという問題のようです。誰かがこのようなスキームをうまく実行しましたか?どうやってやったの?

4

1 に答える 1

2

私はあなたの問題に最も適した解決策は次のようになると思います:

  1. Nginxは、すべてのリクエストで特定のCookieをチェックする必要があります。route
  2. 提示されて等しい場合old、リクエストはoldサイトに送信されます
  3. それ以外の場合、リクエストはnew サイトに送信されます。
  4. すべてのサイト(新旧)は、そのCookieの要求を確認する必要があります(route
  5. Cookieが表示されない(または間違っている)場合、アプリはCookieを正しい値に設定する必要があります。そのサイトに対するリクエストの場合は、そのまま続行します。
  6. そうでない場合は、を送信する必要がありredirect、ステップからやり直します1
于 2012-08-24T05:14:43.680 に答える