0

ロードバランサーがバックエンドの異なるWebサーバーで使用されている場合、同じユーザーのセッションはどのように維持されますか。言い換えると、異なるサーバー間で負荷を分散するロードバランサーがあり、ユーザーがセッションが保存されている1つのサーバーに誘導され、次に同じユーザーが2番目のサーバーに誘導されたとします。サーバーは、それが同じユーザーであるかどうかをどのように知るのですか?両方のサーバーで同じユーザーであることを維持する方法

4

3 に答える 3

0

セッションストレージフォームファイルを変更して、tcp接続を処理できる別のシステム(私の場合はmemcacheですが、mysqlを使用することもできます)に変更しました。

memcacheソリューション:memcache拡張用

session.save_handler = memcache 
session.save_path = "tcp://localhost:11211" 

memcacheDの場合

session.save_handler = memcached 
session.save_path = "localhost:11211" 

、しかしもちろん、localhostをdns/ipに変更する必要があります

手動セッションサポートで確認してください

于 2012-07-03T15:27:42.873 に答える
0

ロードバランサーは、同じユーザー/クライアントを同じサーバーに転送するように構成できます。これが「トリッキー」になるのは、SSLとセキュリティで保護されていないトラフィックの間をジャンプするときだけですが、これはロードバランサーで構成できます。

何らかの理由でこれを実行できない場合は、セッション状態をSQLサーバーに保存/取得できます。方向性については、この記事を参照してください。

于 2012-07-03T15:28:26.787 に答える
0

セッション ストレージにデータベースを使用します。(PHPSESSID を保持する Cookie はクライアントから取得されるため、SQL インジェクションに注意してください。)

ここから開始: http://php.net/manual/en/function.session-set-save-handler.php

于 2012-07-03T15:30:13.447 に答える