1

サーバーの3つ以上のインスタンスを実行している場合(rackspace-cloudのIPグループを使用)、PHPでセッションを管理するにはどうすればよいですか?

ユーザーが最初にログインしたサーバーに「固定」する方法はありますか?私はmemcachedを使用していますが、すべてのクラウドシステムにmemcachedがインストールされているため、ユーザーセッションが適切なサーバーに到達することを保証する必要があります。

単一障害点は必要ありません。

4

1 に答える 1

2

セッション管理にはファイル以外のものを使用してください。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"

于 2010-07-17T01:47:29.617 に答える