2

我们目前正在重写一个生产中的 Django 站点。我们希望将新站点与旧站点并行部署,并使用以下方案将流量从旧站点缓慢转移到新站点:

  • 新帐户转到新站点
  • 现有帐户转到旧网站
  • 现有帐户可能有机会选择加入新网站
  • 转移到新站点的帐户可能会选择退出并返回到旧站点

我很清楚这涉及到一个 cookie,并且 Nginx 能够基于 cookie 重写请求:

cookie 是如何设置的对我来说仍然是一个谜。这似乎是一个先有鸡还是先有蛋的问题。有没有人成功运行过这样的计划?你是怎么做到的?

4

1 回答 1

2

我认为最适合您的问题的解决方案是:

  1. Nginx 在每次请求时都应该检查一些特定的 cookie,route
  2. 如果它出现并且 equals old,请求转到一个old站点
  3. 否则请求转到该new 站点。
  4. 每个站点(新旧站点)都应检查该 cookie 的请求 ( route)
  5. 如果 cookie 未显示(或错误),您的应用应将其设置为正确的值,如果请求是针对该站点的,则继续执行。
  6. 如果不是,它应该发送redirect,我们从 step 重新开始1
于 2012-08-24T05:14:43.680 回答