問題タブ [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.
session - スティッキー セッションと非スティッキー セッション
スティッキー セッションと非スティッキー セッションの違いを知りたいです。インターネットから読んだ後に私が理解したこと:
Sticky : 単一のセッション オブジェクトのみが存在します。
Non-sticky session : 各サーバー ノードのセッション オブジェクト
load-balancing - クライアント ディレクターを使用した Varnish は、異常なバックエンドにトラフィックを送信しますか?
私たちのセットアップは、構成されたヘルスポーリングを備えた 2 つのバックエンドを提供するニスの前部です。クライアント ディレクターを使用して負荷分散を行うため、バックエンドは client.identity に基づいて選択されます。
2 つのバックエンドの 1 つに障害が発生すると、varnish はこのバックエンドを正常に Sick に設定しますが、訪問者は Sick バックエンドに送信されているため、データベース エラーを受信しています!
ワニスのドキュメントを検索しましたが、「クライアント ディレクター」に固有のものは見つかりませんでした。ワニスは問題のあるバックエンドを使用しないと明示的に述べている「ラウンド ロビン」をたくさん見てきましたが、「クライアント ディレクター」には何も使用しません。 '。
varnish が「クライアント ディレクター」を使用する場合、問題のあるバックエンドが選択されないことを確認できますか? そうすれば、どこかに誤った構成があり、ニスのバグではないことがわかります。
node.js - 同じプロセスでのみ機能する Socket.io イベント
クライアントにメッセージを渡すために socket.io と sticky-session を使用しようとしています。
問題は、プロセスの 1 つに接続するクライアントが他のプロセスからメッセージを取得せず、接続しているプロセスからのみメッセージを取得することです。
Web ソケットをすべてのプロセスで動作させるにはどうすればよいですか?
サーバー.js:
プロセス.js:
client.js:
javascript - ファイルのダウンロードの実装中にスティッキー セッションを回避するにはどうすればよいですか?
ここにタスクがあります - UI 側 (JavaScript) からのデータに基づいてファイルを生成する必要があります。スキーマは非常に単純です。
UI はサーバーに対して非同期の POST HTTP 要求を作成し、いくつかの JSON データを提供します。
/li>サーバーはリクエストを受け取り、ファイルを生成し、それをファイルシステムに置き、一意の ID を返します。
/li>UI 側は、生成されたファイルの一意の ID を取得し、それを要求します。
/li>サーバーは要求されたファイルを出力します。
/li>
問題は、このスキーマを複数のサーバーで検討するときに始まります。Server_AとServer_Bの2 つのインスタンスがあり、それらの前にロード バランサーがある場合、上記の両方の要求が同じサーバーに送信されるようにする必要があります。したがって、スティッキー セッションが必要です。http://server_a/reports/123のように指定されたサーバーに絶対パスを提供することは、すべてのサーバーを外界から到達できないようにするため、適切なオプションではありません。
では、生成されたファイルのダウンロードを実装し、スティッキー セッションを回避するには、どのようなオプションを利用できるのでしょうか?
nginx - nginx は特定のリクエストに対してサーバーを指定します
4 つの異なるサーバー間の負荷分散をip_hash;
オンにしたとします。そのため、クライアントの IP アドレスは、要求がルーティングされるサーバーを決定するためのハッシュ キーとして使用されます。
ただし、ファイルのアップロードの場合は、すべてのファイルを 1 つのサーバーに保管することをお勧めします。したがって、すべての/upload
リクエストをサーバー 1 にルーティングして、クライアントを取得したいと考えています。POST /upload
これは、サーバー 1 に送信する必要があるものを除いて、すべての要求が IP ハッシュに従うことを意味します。
NGINX でこの例外を作成する方法はありますか? ありがとう!
node.js - WS と WSS 接続を維持する soket.io サーバーを作成するには?
私はsocket.io
そのようなコードを持つサーバーを持っています:
WS プロトコルでも問題なく動作しますが、WSS プロトコルもサポートしたいと考えています。sticky-session を使用する場合、WS プロトコルと WSS プロトコルの両方を使用できますか?
sticky-session
ドキュメントから:
Sticky-sessions モジュールは、IP アドレスを使用してリクエストを分散しています。したがって、クライアントは常に同じワーカー サーバーに接続し、socket.io は期待どおりに動作しますが、複数のプロセスで動作します!
しかし、WS と WSS を介してオープンな接続を確立したいのですが、WS と WSS の接続を維持するためにサーバーを更新する人がわかりません。
amazon-web-services - AWS ELB スティッキー セッションが意図したとおりに機能することをテストするにはどうすればよいですか?
ELB がスティッキー セッションを使用するように構成されているソリューションがあります。クライアントへのリクエストが ELB の背後にある自動スケーリング グループ内の同じインスタンスに実際にルーティングされていることを実際に確認するにはどうすればよいですか?
apache - Nuxeo Cluster - Load Balancer - セッションの複製に失敗しました
Apache2.4 http ロード バランサーを次のように構成しました。
nuxeo インスタンスでは、40 で nuxeo ドキュメントで提案されているように構成を行いました:
nuxeo.server.jvmRoute=nxworker1 および nuxeo.server.jvmRoute=nxworker2 で 41
ex 40 でインスタンスの 1 つがダウンした場合、ユーザーが接続して作業しているときに、ノード 41 でセッションが複製されていないように見えるため、再度ログインする必要がありました。
何か提案はありますか?
ありがとう