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