2013-03-05 62 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也可以這樣做)。