Tomcat でのコネクタ構成

Tomcat でのコネクタ構成

JBoss は Tomcat を Web コンテナとして使用するため、JBoss の Web コンテナの構成は Tomcat の構成と似ており、主に server.xml ファイルの編集が必要になります。JBoss 5.x では、このファイルは${JBOSS.HOME}\server\${confifure}\deploy\jbossweb.sarにあります。configure の値は all、default、web、standard、minimal などになります。次のコードは、JBoss のデフォルト設定での server.xml ファイルを示しています。スペースの都合上、コメントは削除されています。

<サーバー> 
  <リスナークラス名="org.apache.catalina.core.AprLifecycleListener" SSLEngine="オン" /> 
  <リスナークラス名="org.apache.catalina.core.JasperListener" /> 
  <サービス名="jboss.web"> 
   <コネクタ プロトコル="HTTP/1.1" ポート="8080" アドレス="${jboss.bind.address}"  
        接続タイムアウト="20000" リダイレクトポート="8443" 圧縮="オン"  
        圧縮最小サイズ="1" 圧縮可能なMimeType="text/html,text/xml" /> 
   <エンジン名="jboss.web" デフォルトホスト="localhost"> 
     <レルムクラス名="org.jboss.web.tomcat.security.JBossWebRealm" 
      証明書プリンシパル="org.jboss.security.auth.certs.SubjectDNMapping" 
      allRolesMode="認証のみ" 
      /> 
     <ホスト名="localhost">  
      <Valve クラス名="org.jboss.web.tomcat.service.jca.CachedConnectionValve" 
      cachedConnectionManagerオブジェクト名="jboss.jca:service=CachedConnectionManager" 
      トランザクションマネージャオブジェクト名="jboss:service=TransactionManager" /> 
     ホスト> 
   エンジン> 
  サービス> 
サーバー>

上記の構成ファイルでは、Server がルート ノードです。1 つの Server は Servlet コンテナを表します。したがって、server.xml にはこのようなノードが 1 つだけ存在できます。Server ノードの下には、1 つ以上の Service ノードが存在する場合があります。

サービス ノードは 1 つ以上のコネクタと 1 つのエンジンを表します。コネクタとエンジンは server.xml 内の 2 つの重要な構成項目です。コネクタの主な機能は、ユーザー要求を受け入れて応答することです。よく使用されるコネクタには、HTTP/1.1 コネクタと AJP コネクタがあります。HTTP/1.1 コネクタは主にユーザーの HTTP リクエストを処理するために使用されます。HTTP/1.1 コネクタと呼ばれていますが、HTTP/1.0 プロトコルと完全に互換性があることに注意してください。 AJP コネクタは主に AJP プロトコルを使用して Web コネクタと通信し、通常はクラスターで使用されます。

HTTP/1.1 コネクタ インスタンスは、ユーザーが設定したポートをリッスンします。アプリケーション サーバーが起動すると、HTTP/1.1 コネクタは、ユーザー要求を処理するために複数のスレッドを作成します。作成されるスレッドの数は、ユーザーが設定した minThreads 値によって決まります。この値はデフォルトで 5 です。ユーザー要求がさらに到着すると、HTTP/1.1 コネクタは要求を処理するためにさらにスレッドを作成します。作成されるスレッドの最大数は maxThreads によって定義され、デフォルト値は 20 です。すべてのスレッドがユーザー要求の処理でビジー状態の場合、新しい着信要求は HTTP/1.1 コネクタによって作成されたソケット キューに配置されます。キューの長さは acceptCount 属性によって定義されます。待機キューもいっぱいになると、新しいユーザー要求は接続拒否エラーを受け取ります。

コネクタによって提供されるすべての構成項目 (不完全なスキーム、isSecure、xpoweredBy、useIPVHosts):

  • allowTrace サーバーがユーザーの HAED/TRACE 要求を処理できるようにする必要がある場合、この値を true に設定する必要があります。デフォルト値は false です。
  • emptySessionPath true に設定すると、すべてのセッションと Cookie のパスが / に設定されます。この設定は通常、ポートレットで役立ちます。デフォルト値は false です。
  • enableLookups request.getRemoteHost() メソッドを呼び出すときにクライアントのマシン名を取得する必要がある場合は、これを true に設定する必要があります。これを false に設定すると、DNS クエリはスキップされ、クライアント マシンの IP アドレスが直接返されます。通常、パフォーマンスを向上させるために、この値は false に設定されます。デフォルト値は true です。
  • maxPostSize POST メソッドで送信できるデータの最大サイズ。宣言されていないか、0 以下に設定されている場合は、POST で送信されるデータのサイズが無制限であることを意味します。デフォルト値は 2 メガバイトです。
  • protocol は、リクエストを処理するためのプロトコルを設定します。デフォルトは HTTP/1.1、つまり org.apache.coyote.http11.Http11Protocol です。サポートされているその他のプロトコルには、org.apache.coyote.http11.Http11NioProtocol (NIO を介してユーザー リクエストを処理すると、システム パフォーマンスが向上します) と org.apache.coyote.http11.HttpAprProtocol があります。
  • proxyName/proxyPort Web サーバーがプロキシ サーバーを使用する場合、このパラメータを設定すると、request.getServerName を呼び出すときにプロキシ サーバーの名前が取得され、getServerPort() は proxyPort を返します。
  • redirectPort コネクタが非 SSL 要求をサポートするように構成されている場合、SSL 要求が到着すると、サーバーは要求を自動的に redirectPort にリダイレクトします。
  • URIEncoding URI バイトを文字列に変換するときのエンコード方法。デフォルトは ISO-8859-1 です。ページで中国語をサポートする必要がある場合は、通常、UTF-8 または GBK、GB2312 に設定できます。
  • useBodyEncodingForURI true に設定すると、URI エンコード方式はページ エンコードに基づいて決定されます。デフォルトは false です。

Http/1.1 コネクタによって提供される構成項目:

  • acceptCount 待機キューの長さ。デフォルト値は 100 です。
  • アドレス Tomcat が配置されているホストに複数の IP がある場合、この値は HTTP 要求をリッスンするために使用される IP アドレスを宣言します。
  • bufferSize コネクタによって作成される入力ストリームのサイズ。デフォルト値は 2048 バイトです。この値を増やすと、パフォーマンスが向上し、メモリ消費量が増加する可能性があります。
  • compressedMimeType は、コンマで区切られた HTTP 圧縮 MIME タイプを使用します。デフォルト値は text/html、text/xml、text/plain です。
  • 圧縮 帯域幅を節約するには、この値をオンにして HTTP/1.1 GZIP 圧縮を有効にします。 off は圧縮をオフにし、強制圧縮を強制します。デフォルト値は off です。
  • connectionTimeout コネクタが接続を受け入れた後に待機する時間 (ミリ秒)。デフォルト値は 60000 です。
  • executor サービス ノードでは、コネクタ ノードの前に Executor ノードを設定してスレッドを管理できます。このプロパティの値は、設定された Executor の名前です。このプロパティが適用され、Executor が存在する場合、スレッドに関するその他の設定は無視されます。
  • keepAliveTimeout コネクタが接続を閉じる前に別の Keep Alive 要求を待機するマイクロ秒数。デフォルト値は connectionTimeout と同じです。
  • maxHttpHeaderSize HTTP 要求および応答ヘッダー情報の最大サイズ。デフォルト値は 8192 バイトです。
  • maxKeepAliveRequests HTTP/1.0 Keep Alive および HTTP/1.1 Keep Alive / Pipeline の最大リクエスト数。1 に設定すると、Keep Alive および Pipeline は無効になります。0 未満の数値に設定すると、Keep Alive リクエストの最大数に制限はありません。デフォルトは 100 です。
  • maxThreads ユーザー要求を処理するために使用されるスレッドの最大数。デフォルト値は 20 です。
  • noCompressionUserAgents: HTTP GZIP 圧縮を使用しないクライアントをカンマで区切って設定します。この属性は、一部のブラウザが圧縮をサポートしていない場合に使用できます。
  • port コネクタがリッスンするポート。
  • restrictUserAgents は、Keep Alive を使用しないクライアント エージェント名をコンマで区切って設定します。デフォルト値は空の文字列です。
  • server は HTTP 応答の serve ヘッダーを上書きします。設定されていない場合、デフォルト値は Apache-Coyote/1.1 です。通常、このプロパティに注意を払う必要はありません。
  • socketBuffer ソケット出力ストリーム バッファのサイズ。デフォルトは 9000 バイトです。0 未満の値に設定されている場合、このバッファは使用されません。
  • tcpNoDelay のデフォルト値は true です。これを true に設定すると、システム パフォーマンスが向上します。
  • threadPriority 要求処理スレッドの優先度。デフォルトの優先度は NORMAL です。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Tomcat での jar のロードに関する異常な問題の分析と解決
  • Apache、Tomcat、Nginx サーバーの詳細な理解と比較分析
  • Linux で Tomcat を実行するいくつかの方法の説明
  • Tomcat 7.0 で仮想ディレクトリを設定し、仮想パスを構成する方法
  • IDEAリモートデバッグを使用したTomcatの説明
  • TomcatはLog4jを使用してcatalina.outログを出力します。
  • Tomcatのデフォルトプログラム公開パスの使用と変更についての説明
  • Eclipse プロジェクトを IDEA にインポートし、Tomcat にデプロイするための詳細な手順
  • Tomcatのデフォルトパスの設定によって発生するプロジェクトURLの競合を解決する方法の詳細な説明
  • Tomcat サーバーが tomcat7w.exe を開けない場合の解決策

<<:  MySQLの起動失敗の解決策

>>:  CocosCreator最適化DrawCallの詳細な説明

推薦する

Vue+Springbootでインターフェースシグネチャを実装するためのサンプルコード

1. 実装のアイデアインターフェース署名の目的は、リクエストパラメータが改ざんされていないか、リクエ...

Vueはユーザーログインとトークン検証を実装します

フロントエンドとバックエンドを完全に分離する場合、Vue プロジェクトでトークン検証を実装する一般的...

MYSQL SERVER のログファイルを縮小する方法

トランザクション ログには、関連するデータベースに対する操作が記録され、データベースの回復に関連する...

CentOS8でのDockerの使い方の詳しい説明

1. CentOS8でのDockerのインストール カール https://download.doc...

ページ内の検索エンジンの呼び出しはBaiduを例に挙げています

今日、突然、自分のウェブページで Google や Baidu のような強力な検索エンジンを呼び出す...

JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...

OEL7.6 ソースコードから MYSQL5.7 をインストールするチュートリアル

まず、公式サイト https://dev.mysql.com/downloads/mysql/5.7...

テーブルのネストと境界の結合の問題に対する解決策

【質問】外側のテーブルと内側のテーブルがネストされていて、内側のテーブルと外側のテーブルの両方に境界...

IdeaでTomcatを起動したときに複数のリスナーが報告される問題を解決する

エラーのスクリーンショット例外が発生した場所が見つかりません。解決策: リソースディレクトリにlog...

HTML webpackプラグインの使用に関する簡単な分析

html-webpack-pluginプラグインを使用してページを開始すると、htmlページをメモリ...

NginxはLua+Redisを使用してIPを動的にブロックします

1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...

近々ブラウザに導入される CSS :is() と :where() の簡単な分析

Safari (Technology Preview 106) および Firefox (バージョン...

MySQL 操作: JSON データ型の操作

前回の記事では、MySQL データ保存手順パラメータの詳細な例を紹介しました。今日は、JSON デー...

Vue で v-for を更新する方法

ヒント:配列変更メソッドによりv-forが更新され、ページが更新されます。配列を変更しないメソッド:...