目次
1. Tomcat クラスター構成
2) Linux
2. その他の最適化された構成:
1) 次の構成 1
ホームページ バックエンド開発 PHPチュートリアル Tomcat+Nginx クラスターと負荷分散

Tomcat+Nginx クラスターと負荷分散

Jul 29, 2016 am 09:16 AM
lt quot tomcat

転載する場合は出典を明記してください: http://blog.csdn.net/l1028386804/article/details/48272857

今日は、Tomcat と nginx のクラスタリングと負荷分散を実装するために協力します

1. Tomcatクラスター構成 ポートの計画

注: このポートは、同じマシン上で 2 つの Tomcat を起動するために使用されます。マシンが 1 つの Tomcat のみをデプロイする場合は、そのポートを同じにする必要があります。

シリアル番号

シャットダウン

AJP

http

クラスターレシーバー

1

8005

8009

8080

5001

2

8015

8019

8081

5002

1. Tomcat クラスター構成

server.xml を変更します。

は:
<Engine name="Catalina" defaultHost="localhost">
ログイン後にコピー
は次のように変更されます:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">  
ログイン後にコピー

jvmRoute="jvm1" は Tomcat ごとに異なる名前を持ちます。

次のコンテンツを ノードに追加して、セッションのレプリケーションと共有を実装します:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
         channelSendOpti

  <Manager className="org.apache.catalina.ha.session.DeltaManager"
           expireSessi
           notifyListeners/>

  <Channel className="org.apache.catalina.tribes.group.GroupChannel">
    <Membership className="org.apache.catalina.tribes.membership.McastService"
                address="228.0.0.4"
                port="45564"
                frequency="500"
                dropTime="3000"/>
    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
              address="auto" <!--可写你自己的ip地址-->
              port="5001"
              autoBind="100"
              selectorTimeout="5000"
              maxThreads="6"/>

    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
    </Sender>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
  </Channel>

  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
         filter=""/>
  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

  <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
            tempDir="/tmp/war-temp/"
            deployDir="/tmp/war-deploy/"
            watchDir="/tmp/war-listen/"
            watchEnabled="false"/>

  <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
  <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>    
ログイン後にコピー

同じマシン上にあることに注意してください: 受信ノード ポート: port="5001" そうでなければ同じです。

2. tomcat の web.xml を変更する

セッション同期レプリケーションの設定を実際に実現するには、tomcat の web.xml 構成パラメーターを変更する必要があります

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<distributable /> (在倒数第二行增加这个代码才能实现session同步复制功能)
</web-app>
ログイン後にコピー
2. メモリ最適化構成。

1) Windows:

set JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M 
-XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails  
-XX:+PrintGCTimeStamps -Djava.awt.headless=true"  
ログイン後にコピー

2) Linux

JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M 
-XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC  -XX:+PrintGCDetails  
-XX:+PrintGCTimeStamps -Djava.awt.headless=true" 
ログイン後にコピー
2. その他の最適化された構成:
1) 次の構成 1
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="500" minSpareThreads="50" />
ログイン後にコピー
を追加して、

<Connector port="8080" protocol="HTTP/1.1" c
               redirectPort="8443" />
ログイン後にコピー

<Connector port="8080"  executor="tomcatThreadPool" protocol="HTTP/1.1"
               c
               enableLookups="false" redirectPort="8443" />
ログイン後にコピー
に変更します:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
ログイン後にコピー
ログイン後にコピー
から
<Connector port="8009" executor="tomcatThreadPool"
               c
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
ログイン後にコピー

2) または

変更する
<Connector port="8080" protocol="HTTP/1.1"
               c
               redirectPort="8443" />
ログイン後にコピー
<Connector port="8080"  protocol="HTTP/1.1"
               maxThreads="500"
               acceptCount="50" c
               enableLookups="false" redirectPort="8443" />
ログイン後にコピー
変更されます
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
ログイン後にコピー
ログイン後にコピー

<Connector port="8009"
         maxThreads="500"  c
         enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
ログイン後にコピー
注: 2 つの主な違いは次のとおりです: executor が有効で関連付けられている場合、maxThreads="500" は無視されます。

3) いくつかの属性の説明:

maxThreads
    Tomcat はスレッドを使用して、受信した各リクエストを処理します。この値は、Tomcat が作成できるスレッドの最大数を表します。デフォルト値は 200 です。 マシンの期間のパフォーマンスとメモリ サイズに応じて調整できますが、通常は 400 ~ 500 の間です。最大値は約 800 です。

acceptCount

    リクエストの処理に使用可能なすべてのスレッドが使用された場合に、処理キューに入れることができるリクエストの数を指定します。この数を超えるリクエストは処理されません。デフォルト値は 10 です。

minSpareThreads

    Tomcat の初期化時に作成されるスレッドの数。デフォルト値は 4 です。

connnectionTimeout

    ネットワーク接続タイムアウト、デフォルト値 20000、単位: ミリ秒。 0 に設定するとタイムアウトしないことを意味しますが、これは危険な設定です。通常は 30000 ミリ秒に設定できます。 (バックエンドシステムとのインターフェースのタイムアウトが長いため、このシステムは 60000 に設定されています)

enableLookups

    ドメイン名を逆チェックするかどうか、デフォルト値は true です。処理能力を高めるには、false に設定する必要があります。

Executor ノード

    は、Tomcat コンポーネント間で共有されるスレッド プールを表します。

maxIdleTime

    アイドル状態のスレッドがシャットダウンされるまでのミリ秒数。デフォルト値は 60000 です。
3. Nginx + Tomcat ロードバランシング設定


設定ファイル /usr/local/nginx/conf/nginx.conf ファイルに次のコードを追加します

  upstream  tomcat {
        server 192.168.100.50:8080  weight=1;
        server 192.168.100.50:8081  weight=1;
  }
ログイン後にコピー
Tomcat 名は任意です。IP アドレスとアドレスに注意してください。ポート。 サーバーノードの場所を変更します。
location / {
        root   html;
        index  index.html index.htm;
    }
ログイン後にコピー

location  / {
   #root   html;
   #index  index.html index.htm;
           proxy_pass  http://tomcat6;
}
ログイン後にコピー

http://tomcat の Tomcat 名は上記の設定と同じであることに注意してください。

著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

上記では、Tomcat+Nginx クラスターとロード バランシングを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tomcat に jar プロジェクトをデプロイする方法 Tomcat に jar プロジェクトをデプロイする方法 Apr 21, 2024 am 07:27 AM

JAR プロジェクトを Tomcat にデプロイするには、次の手順に従います。 Tomcat をダウンロードして解凍します。 server.xml ファイルを構成し、ポートとプロジェクトのデプロイメント・パスを設定します。 JAR ファイルを指定されたデプロイメント パスにコピーします。 Tomcatを起動します。指定された URL を使用して、デプロイされたプロジェクトにアクセスします。

Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Apr 21, 2024 am 07:22 AM

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

Tomcatのインストールディレクトリはどこにありますか? Tomcatのインストールディレクトリはどこにありますか? Apr 21, 2024 am 07:48 AM

Tomcat インストール ディレクトリ: デフォルト パス: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 カスタム パス: インストール中に指定できます。インストール ディレクトリを見つけます。whereis またはlocateコマンドを使用します。

Tomcat で複数のプロジェクトをデプロイする方法 Tomcat で複数のプロジェクトをデプロイする方法 Apr 21, 2024 am 09:33 AM

Tomcat を介して複数のプロジェクトをデプロイするには、プロジェクトごとに webapp ディレクトリを作成してから、次の操作を行う必要があります。 自動デプロイ: webapp ディレクトリを Tomcat の webapps ディレクトリに配置します。手動デプロイメント: Tomcat のマネージャー アプリケーションにプロジェクトを手動でデプロイします。プロジェクトがデプロイされると、そのデプロイメント名 (例: http://localhost:8080/project1) でアクセスできるようになります。

Tomcatでの同時接続数を確認する方法 Tomcatでの同時接続数を確認する方法 Apr 21, 2024 am 08:12 AM

Tomcat の同時接続数を確認する方法: Tomcat Manager ページ (http://localhost:8080/manager/html) にアクセスし、ユーザー名とパスワードを入力します。左側のナビゲーション バーで [ステータス] -> [セッション] をクリックすると、ページの上部に同時接続数が表示されます。

Tomcat Web サイトのルート ディレクトリはどこですか? Tomcat Web サイトのルート ディレクトリはどこですか? Apr 21, 2024 am 09:27 AM

Tomcat Web サイトのルート ディレクトリは Tomcat の webapps サブディレクトリにあり、Web アプリケーション ファイル、静的リソース、および WEB-INF ディレクトリを保存するために使用されます。これは、Tomcat 構成ファイルで docBase 属性を検索することで見つかります。

Tomcatのポート番号を確認する方法 Tomcatのポート番号を確認する方法 Apr 21, 2024 am 08:00 AM

Tomcat のポート番号は、server.xml ファイルの <Connector> 要素の port 属性を確認することで確認できます。 Tomcat 管理インターフェイス (http://localhost:8080/manager/html) にアクセスし、[ステータス] タブを表示します。コマンドラインから「catalina.sh version」を実行し、「Port:」行を確認します。

Tomcat で異なるポート番号を持つ 2 つのプロジェクトを実行する方法 Tomcat で異なるポート番号を持つ 2 つのプロジェクトを実行する方法 Apr 21, 2024 am 09:00 AM

Tomcat サーバー上で異なるポート番号を使用してプロジェクトを実行するには、次の手順が必要です。server.xml ファイルを変更し、Connector 要素を追加してポート番号を定義します。 Context 要素を追加して、ポート番号に関連付けられたアプリケーションを定義します。 WAR ファイルを作成し、対応するディレクトリ (webapps または webapps/ROOT) にデプロイします。 Tomcat を再起動して変更を適用します。

See all articles