Tomcatの各ポートの機能の詳細な説明

Tomcatの各ポートの機能の詳細な説明

tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、8009、8005 の 3 つのポートが開始されることがわかります。

ポート 8080 (8443)

<コネクタ ポート="80" プロトコル="HTTP/1.1"
   接続タイムアウト = "20000"
   リダイレクトポート="8443" />

これは私たちが最もよく知っているものでしょう。日常的な開発やテストでよく使用されます。コネクタは、ブラウザから送信されたリクエストをリッスンするために使用されます。これを 80 に設定すると、http://localhost を使用して直接アクセスできます。

http プロトコルredirectPortは、https 要求が送信される場合、要求がポート 8443 に送信されることを意味します。

8443 はデフォルトの https リスニング ポートですが、デフォルトでは有効になっていません。これを有効にするには、Tomcat には独自の証明書が付属していないため、コメントを解除するだけでなく、自分で証明書を生成して指定する必要があります。

ポート 8009

<コネクタ ポート="8009" プロトコル="AJP/1.3" リダイレクト ポート="8443" />

Nginx、Apache などを Tomcat のリバース プロキシとして使用する場合は、ajp プロトコルを使用してこのポートにリバース プロキシすることができます。
ポート 8080 への http リバース プロキシを使用することが多いですが、ajp は通常、tcp 接続を確立した後、長時間それを維持するため、tcp の接続と切断を繰り返す Http のオーバーヘッドが削減されるため、リバース プロキシでは http よりも ajp の方が効率的です。

ポート 8005

<サーバーポート="8005" シャットダウン="シャットダウン">

Tomcat がリッスンするシャットダウン ポートは、このポートが Tomcat をシャットダウンする要求をリッスンする役割を担っていることを意味します。

Tomcat をシャットダウンするために、 shutdown.shを実行すると、ポート 8005 に接続し、 SHUTDOWNコマンドを実行します。そのため、telnet を直接使用してポート 8005 でSHUTDOWNを実行し、Tomcat をシャットダウンします。これも、よりオーソドックスなシャットダウン方法です。このポートが監視されていない場合、sh スクリプトは無効です。

実際、ポート 8005 と 8009 は必要ありません。特に、SHUTDOWN はデフォルトで 127.0.0.1 をリッスンするためです。ただし、このポートに接続してSHUTDOWN送信すると、検証なしで Tomcat がシャットダウンされる可能性があり、セキュリティ リスクが生じます。

AJP ポートは、Apache が Tomcat に接続するなど、アプリケーション サーバーと対話するために使用されます。通常、開発中には使用されないため、無効にすることができます。

無効化方法:

AJP ポートの場合は、server.xml ファイル内の構成行をコメント アウトするだけです。

SHUTDOWN ポートはサーバーパラメータに書き込まれます。直接削除すると役に立たなくなります。また、デフォルトで起動されます。一般的には、セキュリティ設定時にポートを別のポートに変更し、SHUTDOWN を他の複雑な文字列に変更することをお勧めします。

実際、このポートは直接ブロックされ、リッスンされないようにすることができます。設定するときは、ポート値を -1 に変更するだけです。

<サーバーポート="-1" シャットダウン="シャットダウン">

server.xml 構成ファイル

<!-- 属性の説明 port: Tomcat をシャットダウンするための要求を待機するポートを指定します。shutdown: サーバーをシャットダウンするために上記のポートに送信されるコマンド文字列 -->
<サーバーポート="8005" シャットダウン="シャットダウン">

 <リスナークラス名="org.apache.catalina.core.AprLifecycleListener" />
 <リスナークラス名="org.apache.catalina.mbeans.ServerLifecycleListener" />
 <リスナークラス名="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 <リスナークラス名="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

 <グローバル命名リソース>
 <環境名="simpleValue" タイプ="java.lang.Integer" 値="30"/>
 <リソース名="UserDatabase" auth="コンテナ"
  タイプ="org.apache.catalina.UserDatabase"
  description="更新および保存できるユーザーデータベース"
  ファクトリー="org.apache.catalina.users.MemoryUserDatabaseFactory"
  パス名="conf/tomcat-users.xml" />
 </グローバル命名リソース>

 <サービス名="Catalina">
 <!--
  コネクタ要素:
  コネクタ インターフェイスによって定義されます。<Connector> 要素は、クライアント プログラムと実際に対話するコンポーネントを表します。クライアント要求を受信し、応答結果をクライアントに返す役割を担います。

  属性の説明:
  port: 指定されたポートでクライアントからの要求をリッスンするサーバー コネクタのポート番号。
  enableLookups: true の場合、request.getRemoteHost() を呼び出して DNS クエリを実行することで、リモート クライアントの実際のホスト名を取得できます。false の場合、DNS クエリは実行されませんが、IP アドレスが返されます。
  redirectPort: HTTP 要求の処理中に SSL トランスポート要求を受信した後、サーバーがリダイレクトするポート番号。
  acceptCount: リクエストを処理するために使用可能なスレッドがすべて使用された場合に、処理キューに配置できるリクエストの数。この数を超えるリクエストは処理されず、接続拒否エラーが返されます。
  connectionTimeout: タイムアウトを待機するミリ秒数。
  maxThreads: ポートでリッスンするスレッドの最大数を設定します。この値によって、サーバーが同時に応答できるクライアント要求の最大数も決まります。デフォルト値は 200 です。
  プロトコル: AJP/1.3 プロトコルに設定する必要があります。
  address: サーバーに 2 つ以上の IP アドレスがある場合、このプロパティでポートがリッスンする IP アドレスを設定できます。デフォルトでは、ポートはサーバー上のすべての IP アドレスをリッスンします。
  minProcessors: サーバーがリクエストの処理を開始するときに作成されるスレッドの数。各リクエストは 1 つのスレッドによって処理されます。
  maxProcessors: リクエストを処理するために作成できるスレッドの最大数。
  minSpareThreads: 最小の予備スレッド。
  maxSpareThreads: 最大予備スレッド数。
  デバッグ: ログ レベル。
  enableUploadTimeout: アップロード タイムアウトを無効にします。主に大容量のデータをアップロードするために使用されます。
 -->
 <コネクタポート="8080" maxHttpHeaderSize="8192"
    最大スレッド数="150" 最小スペアスレッド数="25" 最大スペアスレッド数="75"
    enableLookups="false" リダイレクトポート="8443" 受け入れカウント="100"
    接続タイムアウト="20000" アップロードタイムアウトを無効に="true" />


 <!-- 他の HTTP サーバーとの接続を確立する役割を担います。このコネクタは、Tomcat を他の HTTP サーバーと統合するときに必要です。 -->
 <コネクタポート="8009" 
    enableLookups="false" リダイレクトポート="8443" プロトコル="AJP/1.3" />


 <!-- 
  各 Service 要素には、Engine 要素を 1 つだけ含めることができます。この要素は、同じ <Service> 内のすべての <Connector> 要素によって受信されたクライアント要求を処理します。属性の説明:
  name: $CATALINA_HOME/config/Catalina の Catalina に対応します。
  defaultHost: Host 要素の name 属性に対応します。つまり、$CATALINA_HOME/config/Catalina/localhost の localhost は、リクエストを処理するためのデフォルトの仮想ホスト名で、少なくとも 1 つの Host 要素の name 属性と同じ値を持ちます。debug: ログ レベル -->
 <エンジン名="Catalina" defaultHost="localhost">

  <レルムクラス名="org.apache.catalina.realm.UserDatabaseRealm"
    リソース名="ユーザーデータベース"/>
  <!--
  Host インターフェイスによって定義されます。Engine 要素には複数の <Host> 要素を含めることができます。
  各 <Host> 要素は仮想ホストを定義します。これには 1 つ以上の Web アプリケーションが含まれます。

  属性の説明:
   name: この例では、$CATALINA_HOME/config/Catalina/localhost 内の localhost 仮想ホスト名として常に強調表示されます。debug: ログのデバッグ レベルです。appBase: デフォルトのアプリケーション パス。つまり、アプリケーションをディレクトリに配置し、autoDeploy が true の場合にアプリケーションを自動的にデプロイします。このパスは、$CATALINA_HOME/ (Web アプリケーションのベース ディレクトリ) からの相対パスです。
   unpackWARs: Web アプリケーションが *.war の場合に WAR ファイルを解凍するには、true に設定します。true の場合、Tomcat は WAR ファイルを自動的に解凍します。それ以外の場合は、WAR ファイルから直接アプリケーションを解凍して実行しません。
   autoDeploy: デフォルト値は true です。つまり、新しい Web アプリケーションが appBase に配置され、Tomcat が実行されている場合、アプリケーションは自動的にロードされます。
  <ホスト名="localhost" appBase="webapps"
   unpackWARs="true" autoDeploy="true"
   xmlValidation="false" xmlNamespaceAware="false">
  <!-- 
   属性の説明:
   path: アクセス URI (例: http://localhost/ はアプリケーションのルート ディレクトリであり、このアプリケーションへのアクセスは http://localhost/demm を使用して行われます)。この要素は必須です。
    コンテキストを一致させるために使用される、この Web アプリケーションの URL プレフィックスを示します。要求された URL は http://localhost:8080/path/* の形式です。
   docBase: WEB アプリケーションのディレクトリ。このディレクトリは、Java WEB アプリケーション仕様、Web アプリケーション ファイルの保存パス、または WAR ファイルの保存パスに準拠している必要があります。
   debug: ログレベル reloadable: プログラムが変更されたときにリロードするかどうか。true に設定するとパフォーマンスに影響しますが、変更されたファイルを自動的に読み込むことができます。
    true の場合、Tomcat はホットデプロイメントをサポートし、Web アプリケーションの /WEB-INF/lib および /WEB-INF/classes ディレクトリの変更を自動的に検出します。
    新しいJSPとサーブレットを自動的にロードし、Tomcatを再起動せずにWebアプリケーションを変更できます。
  -->
  <コンテキスト パス="/demm" docBase="E:\\projects\\demm\\WebRoot" デバッグ="0" 再ロード可能="true"></コンテキスト>
  </ホスト>
 </エンジン>
 </サービス>
</サーバー>

Tomcatの各ポートの機能についての詳細説明はこれで終了です。Tomcatのポートの機能についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • LinuxでTomcatのポート番号を変更する方法
  • IDEA が Tomcat ポートを占有し始める理由と解決策の詳細な説明 (デバッグ モードを使用)
  • Tomcat サービスのポート設定を変更する方法
  • MyEclipse で Tomcat 6.x のポート番号を変更する方法
  • Tomcatのデフォルトポート番号8080を変更する方法
  • Tomcatはポート8080が占有されていることを示しています。グラフィカルなソリューション

<<:  vuex名前空間の使用

>>:  MySQLメモリストレージエンジンに関する知識

推薦する

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

Vue の基本的な手順の例のグラフィック説明

目次1. v-on指令1. 基本的な使い方2. 糖衣構文3. イベントパラメータ4. イベント修飾子...

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

この記事では、CSSのようなJSモジュールをインポートする方法を説明します。

目次序文構築可能なスタイルシートとは何ですか? CSSモジュールスクリプトの使用インポートアサーショ...

Mysql 5.7.17 をインストールした後、MySQL にログインするチュートリアル

mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...

Nginxポーリングアルゴリズムの基本的な実装方法の詳細な説明

ポーリングアルゴリズムの紹介多くの人が職場で nginx を使用しており、その設定に精通しています。...

Dockerコンテナの入退出方法の詳細な説明

1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...

知っておくべき JS 配列削減の高度な使い方 25 選

序文Reduce は ES5 で追加された新しい従来の配列メソッドの 1 つです。forEach、f...

SSH経由でローカルLinux仮想マシンに接続するプロセスを記録する

実験環境:物理マシン Windows 10 x64物理NIC情報IPv4 アドレス: 192.168...

dockerでpdflatex環境を設定する方法

技術的背景Latex は文書作成、特に記事作成には欠かせないツールであり、必須のテキスト組版ツールで...

Windows 8.1 で MySQL5.7 のルート パスワードを忘れた場合の解決方法

【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...

LinuxでifconfigとaddrがIPアドレスを表示できない問題を解決する

1. 仮想マシンにLinuxシステムをインストールし、仮想マシンを起動し、rootとパスワードを入力...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...

MySQL 5.7.33 インストール プロセスの詳細な図解

目次インストールパッケージのダウンロードインストール環境変数の設定インストールが成功したか確認する記...