準備 Windows Server 2008 R2 Enterprise (2.40GH、8GB、64ビット、192.168.10.212) 1. Apache 2.4.4をインストールする インストールプロセス中に注意すべきことは何もありません。「次へ」をクリックし続けるだけです。インストールが完了すると、Apache サービスがデフォルトで有効になります。ブラウザに localhost または 127.0.0.1 と入力すると、「It works」という文字が表示されます。 2. Java環境 Ubuntuの設定はインターネット上にたくさんあるので、ここでは詳しくは説明しませんが、JAVA_HOMEとPATHの設定を忘れないようにしてください。 3.Tomcatのインストール ディレクトリ内で解凍するだけです。私のディレクトリは /opt/tomcat7/ です。両方の Ubuntu で解凍しました。権限不足の問題に遭遇する可能性があります。このとき、コマンドを入力する必要があります。最も単純かつ最も強力なのは、sudo chmod 777 directory です。セキュリティ上の問題により、適切に認証する必要があるため、ここでは言及しません。 構成を開始する Apache の設定 1. まず、conf/httpdファイルで、必要なモジュールコメントを開きます(先頭の#記号を削除するだけです)。 LoadModule proxy_module モジュール/mod_proxy.so ロードモジュール proxy_ajp_module モジュール/mod_proxy_ajp.so ロードモジュール proxy_balancer_module モジュール/mod_proxy_balancer.so ロードモジュール proxy_connect_module モジュール/mod_proxy_connect.so ロードモジュール slotmem_shm_module モジュール/mod_slotmem_shm.so ロードモジュール lbmethod_byrequests_module モジュール/mod_lbmethod_byrequests.so ここでは最後の 2 つについて説明します。最初のいくつかを開いただけで、Apache を起動できませんでした。 ログを確認すると、「'slotmem' のプロバイダー 'shm' の検索に失敗しました: mod_slotmem_shm がロードされていますか?」というエラーが報告され続けていることがわかりました。確認したところ、モジュールが有効になっていませんでした。# 記号を削除すると、エラーは報告されなくなります。 もう 1 つの理由は、エラー (22) 無効な引数: AH01183: バランサーを共有できません が報告されることです。このモジュールを開くと、エラーは報告されなくなります。 2. conf/httpdファイル内の仮想ホストのコメントを解除する Includeの前の#を削除します 3. conf/extra/httpd-vhosts.confに設定を追加する まずは私自身の設定を投稿させてください。 <仮想ホスト *:80> サーバー管理者 [email protected] ProxyPass / balancer://cluster/ スティッキーセッション=JSESSIONID|jsessionid nofailover=オン ProxyPassReverse / バランサ://cluster/ サーバー名 192.168.10.212 エラーログ "logs/error.log" CustomLog "logs/access.log" 共通 </仮想ホスト> プロキシリクエストオフ <プロキシ バランサー://クラスター> バランサメンバー ajp://192.168.10.98:8009 負荷係数=1 ルート=jvm1 smax=5 最大=20 ttl=120 再試行=300 タイムアウト=15 バランサメンバー ajp://192.168.10.137:8009 負荷係数=1 ルート=jvm2 smax=5 最大=20 ttl=120 再試行=300 タイムアウト=15 </プロキシ> ProxyPass: リモートサーバーをローカルサーバーのURL空間にマッピングします balancer:// : プロキシ命令タイプ sticksession: バランサーのスティッキーセッション名。この値は、セッションをサポートするバックエンド アプリケーション サーバーに応じて、JSESSIONID や PHPSESSIONID などに設定されることが多いです。バックエンド サーバーが異なる Cookie 名または URL エンコードされた ID (サーブレット コンテナーなど) を使用する場合は、| を使用してそれらを区切ります。最初の部分は Cookie 用、2 番目の部分はパス用です。 nofailover : 「オン」に設定すると、ワーカーが無効になったりエラーが発生したりしたときにセッションが直ちに終了します。バックエンド サーバーがセッション レプリケーションをサポートしていない場合は、この値をオンに設定できます。 ProxyRequests: ProxyPass ディレクティブを使用する場合は、通常、ProxyRequests ディレクティブをオフにする必要があります。 BalancerMember: Balancer メンバー loadfactor: 作業単位の負荷係数。 BalancerMember に使用されます。これは、この作業者に適用される正規化された重量負荷を定義する 1 ~ 100 の数値です。 route : ロードバランサーで使用されるワーカーのルート。ルートはセッション ID に追加される値です。 smax: 必要に応じて、最大数のリンク (ソフト最大値、または smax) を作成します。 smax 数を超えるリンクには、有効期間 (ttl) が割り当てられます。 max: デフォルト値は、現在の MPM 内のプロセスあたりのスレッド数です。 Prefork MPM ではこの値は常に 1 であり、Worker MPM ではこの値は ThreadsPerChild によって制御されます。 ttl: smax 接続数を超える非アクティブ リンクの存続時間 (TTL) (秒単位)。 Apache はこの間に使用されていない接続をすべて閉じます。 retry: スレッド プール ワーカーの再試行のタイムアウト (秒単位)。バックエンド サーバーへのスレッド プール ワーカーのステータスがエラーの場合、Apache はタイムアウトが経過するまでサーバーにリクエストを送信しません。 これにより、バックエンド サーバーをメンテナンスのために停止し、後でオンラインに戻すことができます。値が 0 の場合、エラーが発生したときに待機せずにワーカーを常に再試行することを意味します。 timeout: リンクのタイムアウト(秒単位)。設定されていない場合、Apache は接続が利用可能になるまで待機します。このディレクティブは、バックエンド サーバーへの接続を制限するために、max パラメータと一緒に使用されることが多いです。 これで設定はほぼ完了です。Apache サービスを再起動するだけです。 注: localhost または 127.0.0.1 を入力すると、「It works」という文字は表示されなくなります。代わりに、503 エラーが報告されます。これは、Apache が負荷分散機能を有効にし、ターゲット IP を AJP 経由で Tomcat に送信したが、Tomcat がまだ起動していないため、正常な動作です。 Tomcat の設定 192.168.10.98のサーバーを例に挙げます Vim を使用して conf の下の server.xml を開きます (Vim を知らない場合は想像力を働かせてください ╮(╯▽╰)╭)。ここで紹介する負荷分散は、Apache が AJP プロトコルを介して Tomcat に接続するため、Apache で設定されたポート番号が Tomcat の AJP のポート番号になります。 さらに、エンジンでjvmRouteを設定する必要があります <エンジン名="Catalina" defaultHost="localhost" jvmRoute="jvm1"> ここでの jvmRoute は Apache のルートに対応します。 (これを削除したところ、まだ機能していることがわかりました。素晴らしいと思いますが、設定する必要があります。) ついに、 <クラスタークラス名="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> このメモは この時点で設定は完了です。同様に、192.168.10.137 でも設定します。 テスト用に小さなtest.jspを書く <%@ ページコンテンツタイプ="text/html;charset=UTF-8" %> <%@ ページインポート="java.util.*"%> <html> <ヘッド> <title>ApacheTomcatテスト</title> </head> <本文> <% out.println("<br> セッションID:" + session.getId() + "</br>"); %> </本文> </html> Tomcat の webapps ディレクトリの下に balance フォルダを作成し、そのフォルダに test.jsp を置いて、Tomcat を起動します。 最後に、ブラウザに192.168.10.212/balance/test.jspと入力します。 これは負荷分散の具体化です。もちろん、192.168.10.212 を入力すると、「It works」ではなく、従来の Tomcat ホームページが表示されます。 ちなみに、上記は3つのサーバーに基づいています Apache+Tomcat7の負荷分散構成の詳細については、次の関連リンクをクリックしてください。 以下もご興味があるかもしれません:
|
<<: MySQL の厄介な Aborted 警告をケーススタディで分析する
>>: この記事はPReact10.5.13のソースコードを理解するのに役立ちます
目次予備作業バックエンド構築フロントエンドページダイレクトレンダリングsetTimeout ページン...
導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...
位置一致順序1. 「=」プレフィックス命令マッチング、マッチングが成功したら他のマッチングを停止2....
MySQL サーバーをシャットダウンする場合、シャットダウン方法に応じてさまざまな問題が発生する可能...
イベントでは、SQL コードを 1 回または一定の間隔で実行することを指定できます。通常、複雑な S...
目次ブートストラップと関連コンテンツの紹介グリッドシステムネストされた列列オフセット列の並べ替えナビ...
目次デモ1フラグメントの作成スヴェルトコンポーネント状態を変更できるデモSvelte は長い間存在し...
最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...
目次概要演算子の改良と正確なinstanceofよりスマートなオブジェクトリテラル推論固有のシンボル...
1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...
目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...
目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...
目次コンポーネント - タイムラインカスタムノードスタイルカスタムタイムスタンプコンポーネント - ...
Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...
序文「大規模なフロントエンド プロジェクト向け」に設計されたフロントエンド フレームワークである A...