サーバーの3つ以上のインスタンスを実行している場合(rackspace-cloudのIPグループを使用)、PHPでセッションを管理するにはどうすればよいですか?
ユーザーが最初にログインしたサーバーに「固定」する方法はありますか?私はmemcachedを使用していますが、すべてのクラウドシステムにmemcachedがインストールされているため、ユーザーセッションが適切なサーバーに到達することを保証する必要があります。
単一障害点は必要ありません。
サーバーの3つ以上のインスタンスを実行している場合(rackspace-cloudのIPグループを使用)、PHPでセッションを管理するにはどうすればよいですか?
ユーザーが最初にログインしたサーバーに「固定」する方法はありますか?私はmemcachedを使用していますが、すべてのクラウドシステムにmemcachedがインストールされているため、ユーザーセッションが適切なサーバーに到達することを保証する必要があります。
単一障害点は必要ありません。
セッション管理にはファイル以外のものを使用してください。PHP では、ハンドラを上書きできます。memcache を使用しています。PECL 拡張もあります: http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/
これに関する別の記事は次のとおりです。 http://www.ducea.com/2009/06/02/php-sessions-in-memcached/
アップデート
コメントからの問題に対処するには:
これにより、memcache マシンの中央セットをセッションに使用できます。各サーバーがそのファイル システムをローカルで参照する代わりに、定義した中央の memcache クラスターを参照します。
memcache クラスターは、単一障害点を回避するために、好きな数のマシンにすることができます。php.ini からの構成の例を次に示します。
extension=memcache.so memcache.allow_failover = 1 memcache.redundancy = 1 memcache.session_redundancy = 2 ; memcache をセッション ハンドラとして使用する session.save_handler = memcache ; ストレージに使用するサーバー URL のコンマ区切りリストを使用します: session.save_path="udp://:11211?persistent=1&weight=1&timeout=1&retry_interval=15"