Centos 7 システムの Tomcat サーバーの詳細な分析

Centos 7 システムの Tomcat サーバーの詳細な分析

1. tomcatの起源

名前の由来: Tomcat はもともと、Sun のソフトウェア アーキテクトである James Duncan Davidson によって開発されました。彼は後にこれをオープンソース プロジェクトに変えることに協力し、Sun から Apache Software Foundation に寄贈されました。 O'Reilly のオープンソース プロジェクトのほとんどが関連書籍を出版しており、表紙のデザインは動物のスケッチになる予定なので、彼はこのプロジェクトに動物の名前を付けたいと考えています。彼はその動物が自分で面倒を見ることができるようにしたかったので、最終的にその動物に「トムキャット」と名付けました。

1. Tomcat アプリケーションのシナリオ

Tomcat サーバーは、無料のオープン ソース Web アプリケーション サーバーです。軽量のアプリケーション サーバーであり、小規模および中規模のシステムや同時ユーザー数が少ない状況で広く使用されています。JSP プログラムの開発とテストには、このサーバーが第一の選択肢です。一般的に、Tomcat は Apache や Nginx などの Web サーバーと同様に HTML ページを処理する機能がありますが、静的ページを処理する能力は Apache や Nginx にはるかに劣ります。そのため、Tomcat は通常、サーブレットおよび JSP コンテナーとして使用され、バックエンドで単独で実行されます。

2. Tomcatに必要な依存ソフトウェア

Tomcat をインストールする前に JDK をインストールする必要があります。JDK は Sun が無料で提供する Java 言語ソフトウェア開発キットで、Java 仮想マシン (JVM) が含まれています。記述された Java ソース プログラムは、Java バイトコードにコンパイルできます。JDK がインストールされていれば、JVM を使用してこれらのバイトコード ファイルを解釈できるため、Java のクロスプラットフォーム性が保証されます。

プラットフォームの互換性の面では、バイトコード ファイルを解釈し、オペレーティング システムの API を呼び出して対応する機能を実装する Java 仮想マシンとしての JDK は、オペレーティング システムの種類やプラットフォームのビット数と密接に関係しているため、さまざまな種類のバージョンが存在し、Tomcat にもこれらの特徴があります。(Centos 7.0 にはデフォルトで JDK がインストールされており、Centos 6.0 オペレーティング システムの場合は自分でインストールする必要があります)。

1) JDKがインストールされているかどうかを確認する

[root@centos02 ~]# java -バージョン
openjdk バージョン "1.8.0_131"
OpenJDK ランタイム環境 (ビルド 1.8.0_131-b12)
OpenJDK 64 ビット サーバー VM (ビルド 25.131-b12、混合モード)

2) CentOS 6.0にJDKをインストールする

[root@centos02 ~]# mount /dev/cdrom /mnt/ <!--Linux CD をマウント-->
マウント: /dev/sr0 は書き込み禁止になっており、読み取り専用モードでマウントされます [root@centos02 ~]# tar zxvf /mnt/jdk-7u65-linux-x64.gz -C /usr/src/ 
  <!--jdk パッケージを解凍します-->
[root@centos02 src]# ls
jdk1.7.0_65 カーネルをデバッグする
[root@centos02 src]# mv jdk1.7.0_65/ /usr/src/java <!--JDK をインストール-->
[root@centos02 ~]# vim /etc/profile.d/java.sh<!--jdk 実行環境変数を設定します-->
JAVA_HOME=/usr/local/java をエクスポートします。
エクスポート PATH=$PATH:$JAVA_HOME/bin
[root@centos02 ~]# chmod +x /etc/profile.d/java.sh<!--変数は実行権限を追加します-->
[root@centos02 ~]# source /etc/profile.d/java.sh <!--JDK を実行-->

2. Tomcatの設定手順

1. Tomcatのメインディレクトリ

tomcat のメイン ディレクトリは /usr/local/tomcat8/ です。

[root@centos02 ~]# cd /usr/local/tomcat/
[root@centos02 tomcat]# ll
総投与量 96
drwxr-xr-x 2 ルート ルート 4096 11月30日 19:48 bin
drwxr-xr-x 3 ルート ルート 174 11月30日 20:03 conf
drwxr-xr-x 2 ルート ルート 4096 11月 30日 19:48 lib
-rw-r--r-- 1 ルート ルート 56812 2014年5月20日 ライセンス
drwxr-xr-x 2 ルート ルート 197 11月30日 19:51 ログ
-rw-r--r-- 1 ルート ルート 1192 2014年5月20日 通知
-rw-r--r-- 1 ルート ルート 8974 2014年5月20日 リリースノート
-rw-r--r-- 1 ルート ルート 16204 2014年5月20日 RUNNING.txt
drwxr-xr-x 2 ルート ルート 11月30日 19:48 temp
drwxr-xr-x 7 ルート ルート 81 2014年5月20日 webapps
drwxr-xr-x 3 ルート ルート 22 11月 30 19:51 仕事

主なディレクトリの説明は次のとおりです。

|---bin/: Windows または Linux プラットフォームで Tomcat を起動およびシャットダウンするためのスクリプト ファイルを保存します。
|---conf/: Tomcat サーバーのさまざまなグローバル構成ファイルを格納します。最も重要なのは server.xml と web.xml です。
|---lib/: Tomcat の実行に必要なライブラリ ファイルを格納します。
|---logs/: Tomcat の実行時に LOG ファイルを保存します。
|---webapps: Tomcat のメイン Web 公開ディレクトリ (アプリケーション例を含む)。
|---work: JSP コンパイル後に生成されたクラス ファイルを格納します。

2. 設定ファイルの説明

[root@centos02 tomcat]# ll conf/
総投与量200
drwxr-xr-x 3 ルート ルート 23 11月 30 19:51 カタリナ
-rw------ 1 ルート ルート 12257 2014年5月20日 catalina.policy
-rw------ 1 ルート ルート 6294 2014年5月20日 catalina.properties
-rw------ 1 ルート ルート 1394 2014年5月20日 context.xml
-rw------ 1 ルート ルート 3288 2014年5月20日 ロギングプロパティ
-rw------ 1 ルート ルート 6610 11月30日 20:03 server.xml
-rw------ 1 ルート ルート 1530 2014年5月20日 tomcat-users.xml
-rw------ 1 ルート ルート 163385 2014年5月20日 web.xml

設定ファイルの説明は次のとおりです。

catalina.policy: 権限制御構成ファイル。
catalina.properties: Tomcat プロパティ構成ファイル。
context.xml: コンテキスト構成ファイル。
logging.properties: ログ関連の構成ファイル。
server.xml: メイン構成ファイル。
tomcat-users.xml: manager-gui 管理ユーザー構成ファイル (Tomcatt はインストール後に manager-gui 管理インターフェイスを提供し、このファイルを構成することでアクセスを有効にすることができます);
web.xml: Tomcat のサーブレット、サーブレット マッピング、フィルター、MIME およびその他の関連する構成。

3. Tomcatメイン設定ファイルの説明

server.xml は Tomcat のメイン構成ファイルです。このファイルを構成することで、起動ポート、Web サイト ディレクトリ、仮想ホスト、https の有効化など、Tomcat の重要な機能を変更することができます。

server.xml 全体は、<Server>、<Service>、<Connector /><Engine>、<Host>、<Context>、</Context></Host></Engine></Service>、</Server> の構造で構成されます。

以下は、デフォルトのインストール server.xml ファイルの一部です。<!-- --> 内の内容はコメント情報です。 // 先頭の数字は私自身のコメントです:

[root@Centos01 tomcat8]# vim conf/server.xml
<?xml バージョン="1.0" エンコーディング="UTF-8"?>
............ //一部のコンテンツを省略 <Server port="8005" shutdown="SHUTDOWN">  
//Tomcat はポートを閉じます。このポートはデフォルトでローカル アドレスにのみ開かれます。ローカル マシンの Telnet 127.0.0.1 8005 経由でアクセスできます。
//Tomcat をシャットダウンします............ //ここでは一部の内容が省略されています<Connector port="8080" protocol="HTTP/1.1"
  接続タイムアウト = "20000"
  リダイレクトポート="8443" />
//Tomcat 起動時のデフォルトのポート番号は 8080 ですが、必要に応じて変更できます。
............ //ここでは一部の内容は省略されています<!-- ポート 8009 で AJP 1.3 コネクタを定義します -->
 <コネクタ ポート="8009" プロトコル="AJP/1.3" リダイレクト ポート="8443" />
//Tomcat が AJP 1.3 コネクタを起動するときのデフォルトのポート番号。必要に応じて変更できます............ //ここでは一部の内容は省略されています//以下は、Tomcat が仮想ホストを定義するときの構成とログ構成です<Host name="localhost" appBase="webapps"
  unpackWARs="true" autoDeploy="true">

 <!-- SingleSignOn バルブ、Web アプリケーション間で認証を共有
  ドキュメント: /docs/config/valve.html -->
 <!--
 <Valve クラス名="org.apache.catalina.authenticator.SingleSignOn" />
 -->

 <!-- アクセス ログはすべての例を処理します。
  ドキュメント: /docs/config/valve.html
  注: 使用されるパターンは、pattern="common" を使用するのと同じです -->
 <Valve クラス名="org.apache.catalina.valves.AccessLogValve" ディレクトリ="logs"
  プレフィックス="localhost_access_log" サフィックス=".txt"
  パターン="%h %l %u %t "%r" %s %b" />

 </ホスト>
 </エンジン>
 </サービス>
</サーバー>

4. Tomcatサーバーのコンポーネントの説明

1) サーバー

サーバー要素は、CatAlina サーブレット コンテナー全体を表します。

2) サービス

サービスは、1 つ以上のコネクタとエンジン (コネクタが受信したすべてのクライアント要求の処理を担当) のコレクションです。

3) コネクタ

コネクタは指定されたポートでクライアント要求をリッスンし、受信した要求をエンジンに渡して処理し、エンジンから応答を取得してクライアントに返します。

Tomcat には、ブラウザーからの http 要求を直接リッスンするコネクタと、他の Web サーバーからの要求をリッスンするコネクタの 2 つの一般的なコネクタがあります。

Coyote HTTP/1.1 コネクタは、ポート 8080 でクライアント ブラウザからの http 要求をリッスンします。

Coyote JK2 コネクタはポート 8009 でリッスンし、他のテキスト サーバー (Apache) からのサーブレット/JSP 要求をプロキシします。

4) エンジン

Engine では複数の仮想ホストを構成でき、各仮想ホストにはドメイン名があります。
エンジンはリクエストを受信すると、そのリクエストを特定のホストと照合し、処理のためにホストに渡します。
エンジンにはデフォルトの仮想ホストがあります。リクエストがどのホストにも一致しない場合は、デフォルトのホストによって処理されます。

5) ホスト

ホストは仮想ホストを表し、各仮想ホストはネットワーク ドメイン名と一致します。
各仮想ホストの下に 1 つ以上の Web アプリをデプロイできます。各 Web アプリはコンテキストに対応し、コンテキスト パスを持ちます。

ホストはリクエストを受信すると、リクエストを特定のコンテキストと照合し、そのコンテキストに渡して処理します。照合方法は「最長一致」であるため、path=="" のコンテキストがホストのデフォルト コンテキストになります。
他のコンテキストのパス名と一致しないすべてのリクエストは、最終的にデフォルトのコンテキストと一致します。

6) 文脈

コンテキストは Web アプリケーションに対応し、Web アプリケーションは 1 つ以上のサーブレットで構成されます。

要約する

上記は編集者が紹介した Centos 7 システムの Tomcat サーバーです。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Centos7+Nginx+Tomcat8 ベースの負荷分散サーバーの構築の詳細説明
  • Linux centos7 環境での Tomcat インストール チュートリアル
  • CentOS7.0のインストールとTomcat-7の設定の詳しい説明
  • CentOS7で指定したTomcatログを時間間隔に応じて指定したファイルにインターセプトする方法
  • CentOS7でサーバーのシステム時間を変更する方法

<<:  Bootstrap Webページレイアウトグリッドの実装

>>:  Windows 10 での MySQL 8.0.16 のインストールと設定のチュートリアル

推薦する

詳細なLinuxインストールチュートリアル

(Win7 システム) VMware 仮想マシンのインストール チュートリアルVMware は仮想マ...

MySQLの使用中に発生した問題

ここでは、MySQL の使用中に発生するいくつかの問題とその解決策を示します。 sql_mode=o...

MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する

SQL UNIQUE制約UNIQUE 制約は、データベース テーブル内の各レコードを一意に識別します...

Linux で Sudo を使用して権限を委譲する

sudo 権限委譲の概要su スイッチ ID: su –l ユーザー名 –c 'コマンド&#...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

シェルスクリプトを使用して CentOS7 に python3.8 環境をインストールする (推奨)

ワンクリック実行仮想マシンに Python 3.8 をインストールするには、ネットワーク アダプター...

HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...

Golang を使って Docker API を実際に操作する

目次SDKのインストールローカル Docker の管理コンテナの実行バックグラウンドでコンテナを実行...

HTMLフォーム送信方法のケーススタディ

フォームの送信方法をまとめると次のようになります。 1. 送信ボタンを使用して送信します。送信ボタン...

MySQL GTID の総合概要

目次01 GTIDの紹介02 GTIDの仕組み03 GTIDの利点と欠点04 テスト環境構築05 テ...

Vue3 で状態管理を実装するために provide を使用する方法

目次序文provide/inject を通じて Vuex 関数を実装する方法このプラグインをアプリケ...

JavaScript で支払いの 10 秒カウントダウンを実現

この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...

CocosCreatorメッセージ配信メカニズムの詳細な説明

概要この記事は、ゲームビジネスアーキテクチャに関連するコンテンツの紹介から始まります。ゲームビジネス...

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...