問題タブ [mod-proxy-balancer]
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 - 負荷分散されたサーバー環境でのPHPリクエストファイルのキャッシュ
すべてのトラフィックをフロントコントローラーにルーティングするPHPアプリケーションで基本的なPHPファイルキャッシングドライバーを作成しようとしています。たとえば、apachemod_proxy_balancerを使用した次の簡略化されたセットアップを想定します。
単一サーバー環境では、リクエストURIに一致するディレクトリ構造のディスクにリクエスト応答をキャッシュします。次に、次のような単純なapache書き換えルールにより、apacheは静的キャッシュファイル(存在する場合)を返し、PHPプロセスを完全に回避できます。
明らかに、これは負荷分散環境では問題があります。これは、キャッシュファイルが、要求が処理されて結果がキャッシュされた特定のPHPサーバー上のディスクにのみ書き込まれるためです。
問題を解決する..。
したがって、この問題を解決するために、いくつかのコードをノックアウトして、個々のバックエンドPHPサーバーにキャッシュデータをロードバランサーに書き込み/削除させることができると考えました。ただし、mod_proxy_balancerの機能(および実際には他の負荷分散オプション)についてはほとんど知らないため、次の質問に対する外部検証が必要です。
そして質問...
- 上記のRewriteRulesのような何らかの形式のチェックを実行して、バックエンドサーバーの1つにリクエストを送信する前に、前面のロードバランサーに静的ファイルを提供させることは可能ですか?
- これもお勧めですか?ロードバランサーがトラフィックを排他的にルーティングし、静的コンテンツの提供に煩わされないようにする必要がありますか?
- PHPサーバーレベルでキャッシュされたファイルに許容可能なTTLを使用し、許容されたレベルの古いキャッシュの重複を処理する方がよいでしょうか。
最後に、これが広すぎるか、すでに回答されている場合は、お詫びします。負荷分散の問題に関する前述の無知の結果として、何を検索すればよいのかよくわかりません。
java - Apache+Tomcat-スティッキーセッションとロードバランシングの問題
スティッキーセッションに関して、Apachemod_proxy_balancerでいくつかの問題に直面しています。
Tomcatで実行されるJavaでRESTfulWebサービスを開発しました。実際のバックエンドは、AuthBasic認証を使用したAcegiセキュリティを使用しています。
アーキテクチャは次のとおりです(申し訳ありませんが、私は新しいユーザーです。画像を投稿できません):
この「Javaリバースプロキシ」は、さまざまなビジネスを実行するためのものです。また、Tomcat(Tomcat1、Tomcat2)で基本認証認証を行います。
エンドユーザーは次のようなURLを呼び出します:http:/// a / b?username = foo&password = bar&session = xxx
次に、リバースプロキシはリクエストをApacheにプロキシし、資格情報を基本認証トークンとして送信します。
エンドユーザーには3つの異なるURLがあります。
service1とservice2のみがAcegiによって保護されます。service3は匿名でアクセスできます(これは要件です)。
負荷分散を実行するために、Apacheには次の構成があります。
service1への最初の呼び出しで、JSESSIONIDがユーザーに返され、ユーザーはこのセッション情報を要求の一部として(クエリ文字列、セッションパラメーターで)送信します。
バックエンドtomcat(tomcat1、tomcat2)でセッション状態を維持するために、Javaリバースプロキシはクエリ文字列からセッションを取得し、それをJSESSIONIDCookieとしてプロキシされたtomcatに送信します。
認証基本保護されているURLに対しては、すべてが完全に正常に機能します。ただし、ユーザーが3番目のURL(公開されている)を呼び出すと、Apacheは負荷分散を正しく実行しません。
たとえば、サービス1または2を呼び出すと、次のApacheログが取得されます。
リクエストはtomcat2をターゲットにすることを目的としているため、これはまったく問題ありません。
しかし、service3を呼び出すと、次のようになります。
ご覧のとおり、JSESSIONID Cookieは同じですが、Apacheはリクエストを間違ったTomcat(ここではtomcat1)に送信します。
service3のURLがAuthBasic認証を必要としないのは事実でしょうか?service1とservice2は必要です。
私は何か間違ったことをしたと確信していますが、私は長い間見回していて、それを機能させることができません。
あなたの助けは非常にありがたいです。
ありがとう
apache - クライアント認証を使用した Apache HTTPD/mod_proxy/Tomcat および SSL
これはよくある質問だと思いますが、同じ質問であると認識できるものは見つかりませんでした。
Tomcat でいくつかの Web アプリを実行しています。たとえば、web.xml の機密要素で定義されているように、SSL で保護されたログイン ページなどのいくつかのページがあります。アプリの 1 つは、証明書によるクライアント認証も受け入れます。また、かなり広範な JAAS ベースの承認および認証方式を使用しており、さまざまな Web アプリケーション間であらゆる種類の共有コードやさまざまな JAAS 構成などがあります。
以下を達成している間、私は本当にそれを邪魔したくありません。
Tomcat インスタンスを追加する前に、ロード バランサーとして Tomcat の前に mod-proxy および mod-proxy-balancer を使用して Apache HTTPD を挿入する作業を行っています。
私が HTTPS リクエストに対して達成したいことは、HTTPD が SSL エンドポイントでなくても Tomcat に「ブラインド」でリダイレクトされることです。つまり、HTTPD は暗号文を Tomcat に直接渡すだけで、TC がログイン、SSL、Web .xml の機密性が保証され、最も重要なのはクライアント認証です。
これは、私が説明した構成で可能ですか?
私は webapps と SSL と HTTPS と Tomcat に精通していますが、Apache HTTPD の外部範囲に関する知識は限られています。
必要に応じてこれを移動できてうれしいですが、構成ファイルを使用したプログラミングのようなものです ;)
apache - httpd mod_proxy_balancer failover failonstatus - 透過的な切り替え
mod_proxy_balancer を使用してバックエンド サーバーのフェイルオーバーを管理しています。バックエンド サーバーは、NFS などの他のバックエンド サービスが失敗したときに、タイムアウトではなくエラー コードを返す場合があり、そのようなサーバーも失敗したノードとしてマークする必要があります。したがって、failonstatus ディレクティブを使用しています。
現在、フェールオーバーは 1 つの不具合で完全に機能します。アクティブ ノードに障害が発生すると、ユーザーは 503 エラーを受け取り、次の要求からスタンバイ サーバーが引き継ぎます。
ただし、単一のリクエストでも失敗したくありません。クライアントにエラーを返さずに mod_proxy フェイルオーバーできませんか? アクティブ ノードに障害が発生した場合、mod_proxy が後続のリクエストからだけでなく、同じリクエストに対してスタンバイを試行するようにします。
apache - apache mod_proxy_balancer を使用してラウンドロビン負荷分散を行う
mod_proxy_balancer で次のことを行うことは可能ですか:
- メイン アプリケーション サーバー: IP: 192.168.1.1
- セカンダリ サーバー: IP: 192.168.1.2
メイン アプリケーション サーバーは、Apache を使用してパブリック DNS からのすべての要求を処理します。
次に mod_proxy_balancer を使用して基本的に言う
つまり、実際には、メイン アプリケーション サーバーがこの要求を処理できるか、それともクラスター内の別のサーバーに渡すことができるかということです。
また、https を使用している場合、各サーバーで各 apache を設定して、署名済み証明書をポイントし、ポート 443 でリッスンするように設定すれば、mod_proxy_balancer がリクエストを通過したときに、当然 https を処理するだけで済みますか?
自分でテストをセットアップできることはわかっていますが、ここで簡単な回答を得ることができれば、2 つの Ubuntu VM のセットアップを台無しにしたくありません。:)
ありがとう
apache2 - 再起動せずにApache2バランサーメンバーを追加/削除する方法
既存の接続が中断されないように、Apache を完全に再起動せずに Apache2 mod_proxy_balancer バランサー メンバーを追加/削除する方法があるかどうかを知りたいですか?
等しいvhost-fileのメンバーを更新し、ソフトリスタートを行うだけの場合
Apache は行った変更を適用しません。提供されたbalancer-manager
ディレクティブと Web バックエンドを使用すると、再起動せずに特定の blancer-member (例: loadfactor) のパラメーターを変更できますが、この方法で新しいメンバーを追加したり、既存のメンバーを削除したりすることはできません。
apache - Apache でのランダム負荷分散
サーバーの負荷分散をセットアップしようとしています。mod_proxy_balancer を使用すると、すべてが非常に簡単に見えます。私の問題は、ランダムバランシング アルゴリズムが必要なことです (なぜそれが必要なのかについては、クライアントの要求です)。
私が見ることができる限り、lbmethod で使用可能なオプションはbyrequests bytraffic byrequests です。独自のモジュールを作成せずにランダムなバランスを取る方法はありますか (それほど難しくはありませんが、それでも避けたいと思います)。