2010-12-19 10 views
0

Ich habe 3 Server, auf denen eine Website ausgeführt wird. Ich muss jetzt Login-System implementieren und ich habe Probleme damit, wenn der Benutzer ein anderes Verhalten (eingeloggt oder ausgeloggt) bekommt, abhängig von dem Server, mit dem es verbunden ist.Konfigurieren der Anmeldung bei Verwendung mehrerer Server mit einem verteilten Dienst (HAProxy, Apache, Ruby on Rails)

Ich bin mit Memcache für Session-Speicher in Rails - config.action_controller.session_store =: mem_cache_store

Active :: Cache :: MemCacheStore.new ("server1", "server2", "server3")

dachte ich, die zweite Zeile entweder Caches synchron oder so hält ...

Jeder Server seine eigene db mit 1 Master hat, 2 Sklaven. Ich habe versucht, den Weg der Sitzungen in SQL-Speicher zu gehen, aber das tut wirklich sql-Servern und Replikationslast wird wirklich schwer.

Gibt es eine einfache Möglichkeit zu sagen, verwenden Sie dieses Memcache für alle Session Store auf allen 3 Servern?

Wird das mein Problem lösen?

Ich werde es wirklich zu schätzen wissen.

Antwort

0

I Memcached nicht verwendet haben, Sitzungen zu speichern, bevor (I wie redis fühlen eine bessere Lösung ist), aber ich denke, solange Sie die ActiveSupport::Cache::MemCacheStore.new("server1","server2","server3") Linie auf jedem Ihrer Anwendungsserver haben, sollten Sie Ihre Sitzungen bleiben synchronisierten oben.

Ich hatte eine Menge Erfolg mit der Verwendung normaler Cookie-Sitzungen mit der gleichen Konfiguration, die Sie beschrieben haben.