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メモリストレージエンジンに関する知識

推薦する

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...

select count() と select count(1) の違いと実行方法

Count(*) または Count(1) または Count([column]) は、おそらく S...

ウェブページにコンテンツが多すぎる場合に、下から上へ素早く戻る方法

Web フロントエンド開発では、ページに多くの記事を表示することが避けられません。記事の最後にあるク...

IE6では画像要素imgに余分な空白スペースがある

ページの DIV+CSS レイアウトを行う際、IE6 で画像要素 img の下に余分なスペースができ...

Vue は動的なプログレスバー効果を実現します

この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...

Vue で Graphql インターフェースを実装する例

注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...

MySQLサーバーが消えたエラーの解決策

PHP で MySQL サーバーが消えた問題1. 背景以前、Codeigniter でコンソール コ...

Linux での MySQL データベースのマスター スレーブ同期レプリケーション構成

Linux での MySQL データベースのマスター/スレーブ同期構成の利点は、この方法をバックアッ...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

MySQL の非主キー自己増分使用例の分析

この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...

Dockerfile 内の予約語命令の解析処理

目次1. Dockerfile とは何ですか? 2. Dockerfile構築プロセスの分析3. D...

MySQL スケジュール バックアップ ソリューション (Linux crontab を使用)

序文この世の愛には値段のつくものもありますが、データには値段のつけられないものがあります。将来、誤っ...

Reactはtodolistの追加、削除、変更、クエリを実装します

目次ToDoリストを例に挙げましょうディレクトリは次のとおりですアプリ入力.jsリスト.jsアイテム...

img 画像タグに alt 属性を付与する必要がありますか?

img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...