問題タブ [sticky-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - nginx を使用した動的 php サイトの負荷分散
私は3つのサーバーを持っています。1 つはロード バランシング用、もう 2 つは Web アプリケーションの提供用です。Web ページを静的サイトとして使用すると、負荷分散が正常に機能します。しかし、Web ページにログインすると、ページが読み込まれるたびにサーバーが変更されるため、正しく応答しません。ログアウトする前に現在のサーバーを変更せずにそれを行うにはどうすればよいですか。私の負荷分散サーバーの構成は
load-balancing - それを使用したすべてのセッションの終了後にのみ、haproxy のスティック テーブル エントリを期限切れにする方法
現在、Haproxy 1.5 を使用しています。バックエンドには 2 つのサーバーがあります。私のアプリ サーバーは 2 つのクライアントから接続を受け取り、両方を同じサーバーに関連付けたいと考えています。すべての接続には url パラメーター X があり、同じサーバーに起因するセッションには同じ url パラメーター X 値があります。スティック テーブルを使用して、特定の url パラメータ値が使用するサーバーを保存し、将来の接続が同じサーバーに起因するようにします。
負荷の増加に合わせてアプリ サーバーを追加できるようにしたい。以前の接続を新しいアプリケーション サーバーに移動するように haproxy に指示するには、サーバーで (いずれかのクライアントの) セッションがアクティブになっていないときに、スティック テーブル エントリを期限切れにする必要があります。
誰でもこれで私を助けることができますか?
amazon-elb - AWS ELB スティッキー セッションをバックエンド リクエストに使用できますか?
私は現在、AWS でホストされているウェブ アプリケーションを使用しており、2 つの ELB インスタンスを使用しています。くだらないアスキー図で申し訳ありません):
つまり、APP サーバーが行う API 要求は、2 つのバックエンド API サーバー間で均等に負荷分散されます。
しかし、私は API サーバーで応答をキャッシュしており、API サーバー間で共有されないキャッシュ無効化メカニズムを使用しているため、ユーザーのセッションを 1 つのバックエンド API サーバーに固定したいと考えています。
通常の ELB ロード バランサーによって生成された Cookie の粘着性を使用して、既にユーザーのセッションを 1 つの APP サーバーに固定していますが、バックエンド ELB をセッションに固定する方法はありますか? もちろん、これらのリクエストはブラウザからのものではないため、Cookie を管理するものは何もありません。また、ELB は Cookie を使用して粘着性を管理することしかできないようです。バックエンド リクエストに必要な Cookie をエミュレートできますか?
tomcat - Tomcat PersistanceManager
sticky_sessions=false の負荷分散で 2 つの Tomcat が動作しています。したがって、Tomcat 全体で「セッションの永続性」が必要です。Tomcat のドキュメントには、次の 3 つの方法があると書かれています。
- Tomcat クラスタリング
- 持続性マネージャー + 共有ディレクトリ
- 持続性マネージャー + SQL ストレージ
クラスタリングは私には合いません。ドキュメントには、設定するには sticky_sessions を true にする必要があると書かれているためです。
Persistance Manager を試してみましたが、タイムアウト後にのみセッションを持続するため、動作しないように見えます。sticky_session=false では動作しません。
Persistance Manager はセッションをすぐに永続化できますか?
memcached-session-manager について読みましたが、サードパーティのソリューションのように見えるので、使用するのが怖いです。それが唯一の解決策ですか?
apache - Apache 負荷分散 tomcat websocket
現在、Tomcat サーバーにデプロイされている websocket アプリケーションを開発しています。ユーザー数が非常に多いため、ワークロードを複数の Tomcat インスタンスに分散したいと考えています。負荷分散には Apache を使用することにしました。
現在、Websockets リクエストの Apache ロード バランシングとスティッキー セッションの実装に問題があります。これは私のApache構成です:
最初の https 要求はポート 8443 に分散されます。アップグレードされた wss 要求も 8443 に転送されます。
2 番目の https 要求には、最初の要求のセッション ID が含まれています: https://...&sid=C28C13EEEC525D203F8CA4E827605E0B.jvm1
Apache ログ ファイルで確認できるように、このセッション ID は stickySession に対して評価されます。
...stickysession sid の値 C28C13EEEC525D203F8CA4E827605E0B.jvm1 が見つかりました
...見つかったルート jvm1
...balancer://http-localhost: ワーカー (htttps://mcsgest1.desy.de:8443/Whiteboard/) が htttps://mcsgest1.desy.de:8443/Whiteboard//?file=octocenter に書き換えられました。 xml&address=///&sid=C28C13EEEC525D203F8CA4E827605E0B.jvm1
2 番目の https 要求はポート 8443 のままですが、websocket プロトコルにアップグレードした後、ws-balancer は sessionID を評価せず、8444 に書き換えます。
...balancer://ws-localhost: ワーカー (wss://mcsgest1.desy.de:8444/Whiteboard/) が wss://mcsgest1.desy.de:8444/Whiteboard//whiteboardendpoint に書き換えられました
wss プロトコルでも stickysession を有効にするには、Apache 構成で何を変更する必要がありますか? Websocket のバランスを取るには、本当に 2 つのバランサー (http と ws) が必要ですか?
c# - スティッキー セッションを使用する場合、SignalR バックプレーンは必要ですか?
スティッキーセッションを使用するアプリケーション用に、マルチサーバーの負荷分散環境があります。個々のクライアントに更新を送信するための SignalR 実装を追加することを検討しています。私はバックプレーンを認識しているので、SignalR を少しいじりました。スティッキーセッションを使用しているので、認証後に単一のサーバーがユーザーリクエストを処理しているため、バックプレーンを実装する必要がないかどうか疑問に思っています。
amazon-web-services - AWS: ELB から EC2 に証明書情報を送信する
スティッキー セッションが AWS ELB で有効になっている場合、ELB は SSL を終了するようです ( AWS フォーラムでこれについて議論しています)。いくつかのことを確認するには、ユーザーの証明書からの情報が必要なので、この情報を EC2 インスタンスに転送するには ELB が必要です。
ELB からユーザーの証明書情報を取得するにはどうすればよいですか? カスタム ヘッダーを作成する方法はありますか? 私が見つけることができたのは、次の 3 つのヘッダーだけでした: Amazon docs on x-forwarded-headers。
最初のリンクで説明したように、別のオプションは永続的なセッションです。これは私の唯一のオプションですか?