2013-03-05 61 views
10

什么是他们的用户名进行负载平衡(或者在某种意义上碎片)一个Django应用程序的用户的有效方式?我想标志Django应用程序的特定用户,让他们去不同的Web服务器一旦被登录。由Django应用程序的登录用户负载均衡(或http代理)?

+0

你们是不是要实现负载均衡持久性?是吗? – andrefsp 2013-03-06 00:54:11

+0

@andrefsp是的。以更基本的方式,我试图让某些用户分配到某些生产节点。例如:登录的欧洲用户总是通过他们的用户名路由到我们的欧洲生产节点。我希望这些欧洲服务器位于该地区,并在欧洲的下班时间内“转身”(加载新的软件/数据库迁移)。 – MikeN 2013-03-09 20:48:03

+0

我会做类似的设置对用户浏览器的cookie,而不是使用背代理(如nginx的),以读取cookie和用户重定向到正确的Web服务器。 请问你为什么要做这样的事情?尝试实施粘性会话可能是一个很大的噩梦 – andrefsp 2013-03-10 20:59:02

回答

1

如果你想拥有特定用户的特定服务器上:创建多个子域(www.example.com,www1.example.com,www2.example.com等)。用户登录后,检查用户是否位于正确的域/服务器上。如果没有,请重定向到用户子域。

0

登录后,你可以设置与用户名(它的散列,电子邮件的哈希值,USER_ID的哈希等)

,并通过使用基于cookie的HA代理,你可以负载均衡额外的cookie。更多的信息可以在ha-proxy的文档中找到(但我相信nginx也可以这样做)。