Tomcatサービスの展開、仮想ホストの構成、およびパラメーターの最適化

1つは、Tomcatの概要です

1.1はじめに

Tomcatサーバーは、無料のオープンソースWebアプリケーションサーバーです。軽量のアプリケーションサーバーです。中小規模のシステムで、同時ユーザーが少ない場合に一般的に使用されます。JSPプログラムの開発とデバッグの最初の選択肢です。 。一般的に、TomcatはApacheまたはNginx Webサーバーと同じですが、HTMLページを処理する機能がありますが、静的HTMLを処理する能力はApacheまたはNginxよりはるかに少ないため、Tomcatは通常サーブレットおよびJSPコンテナとして使用されます。 、後端を別々に実行します。

1.2Tomcatの構成

Tomcatは一連のコンポーネントで構成されており、そのうち3つのコアコンポーネントがあります。
(1)Webコンテナ:Webサーバーの機能を完了します。
(2)サーブレットコンテナ:名前はcatalinaで、サーブレットコードの処理に使用されます。
(3)JSPコンテナ:JSP動的Webページをサーブレットコードに変換するために使用されます。

1.2.1 JSP

Javaサーブレットは、Webサーバーまたはアプリケーションサーバー上で実行されるプログラムであり、Webブラウザまたは他のHTTPクライアントからの要求と、HTTPサーバー上のデータベースまたはアプリケーションとの間の中間層として機能します。サーブレットを使用すると、Webフォームからユーザー入力を収集し、データベースまたはその他のソースからレコードを提示し、Webページを動的に作成できます。CGI(Common Gateway Interface)機能に似ています。
JSPは、動的Web開発テクノロジであるJava ServerPagesの略です。JSPタグを使用して、HTMLページにJavaコードを挿入します。タグは通常、<%で始まり、%>で終わります。
JSPはJavaサーブレットであり、主にJavaWebアプリケーションのユーザーインターフェイス部分を実装するために使用されます。
JSPは、Webフォームを介してユーザー入力データを取得し、データベースやその他のデータソースにアクセスして、動的にWebページを作成します。

2、Tomcatサービスのデプロイ

2.1Tomcatサーバーの構成

jdkはTomcatを実行するために必要な環境であるため、Tomcatをデプロイする前にJdkをインストールする必要があります。

1.ファイアウォールをオフにして、Tomcatのインストールに必要なソフトウェアパッケージを/ optディレクトリにアップロードします。

jdk-8u201-linux-x64.rpm
apache-tomcat-9.0.16.tar.gz

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

ここに画像の説明を挿入

2.JDKをインストールします

cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm      检查软件包的工作目录
rpm -ivh jdk-8u201-linux-x64.rpm
java -version

ここに画像の説明を挿入
ここに画像の説明を挿入

3.JDK環境変数を設定します

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64		#输出定义Java的工作目录
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar	 #输出指定Java所需的类文件					
export PATH=$JAVA_HOME/bin:$PATH		#输出重新定义环境变量,$PATH一定要放在$Java后面,让系统先读取工作目录中的版本信息

source /etc/profile.d/java.sh
java -version

ここに画像の説明を挿入
ここに画像の説明を挿入

CLASSPATH:编译、运行Java程序时,JRE 会去该变量指定的路径中搜索所需的类(.class) 文件。
dt.jar:是关于运行环境的类库,主要是swing 的包。
tools.jar:主要是一些jdk. 工具的类库,包括javac, java, javap,javadoc等。
JDK:java development kit ( java开发工具)
JRE:java runtime envi ronment (java运行时环境)
JVM:java virtuak machine ( java虚拟机),使java程序可以在多种平台上运行class文件。
vim abc.java

public class abc {
    
    
public static void main(String[] args){
    
    
System.out.println("Hello world!");
   }
}

javac abc.java
java abc



javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

ここに画像の説明を挿入
ここに画像の説明を挿入

4.Tomcatをインストールして起動します

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##启动tomcat ##
/usr/local/tomcat/bin/startup.sh
netstat -natp | grep 8080

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

浏览器访问Tomcat的默认主页http://192. 168.238.40:8080

ここに画像の説明を挿入

5.Tomcatの起動速度を最適化する

初めてtomcatを起動すると、Tomcatの起動が非常に遅い場合があります。デフォルトでは、数十秒かかる場合があります。jdkパラメータを変更して変更できます。

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security 
--117行--修改
securerandom.source=file:/dev/urandom    	#random和urandom都属于伪终端,都会提供和数据流,但urandom速度更快
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

ここに画像の説明を挿入
ここに画像の説明を挿入

2.2.1.1メインディレクトリの説明

ll /usr/local/tomcat/

ここに画像の説明を挿入

● bin:存放启动和关闭Tomcat 的脚本文件,比较常用的是catalina.sh、 startup.sh、 shutdown.sh 三个文件
● conf:存放Tomcat 服务器的各种配置文件,比较常用的是server. xml、 context. xml、tomcat-users. xml、web. xml四个文件。
● lib:存放Tomcat 服务器的jar包,一般不作任何改动,除非连接第三方服务,比如redis, 那就需要添加相对应的jar包
● logs:存放Tomcat 日志
● temp:存放Tomcat运行时产生的文件
● webapps:存放项目资源的目录
● work:Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

2.3Tomcat仮想ホスト構成

多くの場合、会社には複数のプロジェクトを実行する必要があるため、1つのサーバーで複数のTomcatサービスを実行することは確かに不可能であり、システムリソースを大量に消費します。この時点で、Tomcat仮想ホストを使用する必要があります。たとえば、2つの新しいドメイン名www.xyw.comとwww.abc.comが追加され、これら2つのドメイン名を介して異なるプロジェクトコンテンツにアクセスできることが望まれます。

1.xywおよびabcプロジェクトのディレクトリとファイルを作成します

mkdir /usr/local/tomcat/webapps/xyw
mkdir /usr/ local/ tomcat/ webapps/abc
echo "This is xyw page\!" > /usr/local/tomcat/webapps/xyw/index.jsp
echo "This is abc page\!" > /usr/local/tomcat/webapps/abc/index.jsp

ここに画像の説明を挿入

2.Tomcatのメイン構成ファイルを変更します

vim /usr/local/tomcat/conf/server.xml
--165行前--插入
<Host name="www.xyw.com" appBase= "webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/xyw" path="" reloadable="true" />
</Host>

<Host name="wwW.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/abc" path="" reloadable="true" />
</Host>

ここに画像の説明を挿入

Host name:主机名
appBase:Tomcat程序工作目录,相对路径为webapps,绝对路径为/usr/local/tomcat/webapps
unpackWARs:是否解压war包
autoDeploy:指示Tomcat运行时,如有新的WEB应用是否允许自动部署
xmlValidation:是否验证xml文件执行有效性检验的标志
xmlNamespaceAware:是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验
docBase:WEB应用的目录
path:设置访问的URI为WEB应用的根目录
reloadable:是否在程序有改动时重新载入
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

ここに画像の説明を挿入

3.クライアントブラウザのアクセス検証

echo "192.168.238.50 www.xyw.com www.abc.com" >> /etc/hosts

浏览器访问http://www.xyw.com:8080
页面显示This is xyw page\!
浏览器访问http://www.abc.com:8080
页面显示This is abc page\!

ここに画像の説明を挿入

ここに画像の説明を挿入

Tomcatのデフォルトインストールでのデフォルト構成は、実稼働環境には適していません。頻繁に中断されているように見え、再起動する必要があります。継続的なストレステストと最適化によってのみ、効率的かつ安定して実行できます。
最適化には主に、オペレーティングシステムの最適化(カーネルパラメーターの最適化)、Tomcat構成ファイルのパラメーターの最適化、およびJava仮想マシン(JVM)のチューニングの3つの側面が含まれます。

第四に、Tomcat構成ファイルのパラメーターの最適化

一般的に使用される最適化関連のパラメーターは次のとおりです。
[maxThreads] Tomcatはスレッドを使用して、受信した各要求を処理します。この値は、Tomcatが作成できるスレッドの最大数を表します。デフォルト値は200です。
[MinSpareThreads]アイドルスレッドの最小数(Tomcatの起動時に初期化されるスレッドの数)は、誰も使用していない場合でも、待機している空のスレッドが非常に多いことを意味します。デフォルト値は10です。
[MaxSpareThreads]スペアスレッドの最大数。作成されたスレッドがこの値を超えると、Tomcatは不要になったソケットスレッドを閉じます。デフォルト値は-1(無制限)です。通常、指定する必要はありません。
[URIEncoding] TomcatコンテナのURLエンコード形式を指定します。言語エンコード形式は、他のWebサーバーソフトウェアほど簡単に構成できないため、個別に指定する必要があります。
[ConnnectionTimeout]ネットワーク接続タイムアウト、単位:ミリ秒、0に設定すると、タイムアウトしないことを意味します。この設定には隠れた危険があります。通常、デフォルトは20000ミリ秒です。
[EnableLookups]ドメイン名を逆チェックしてリモートホストのホスト名を返すかどうか、値はtrueまたはfalseです。falseに設定すると、処理能力を向上させるためにIPアドレスが直接返されます。 、falseに設定する必要があります。
[disableUploadTimeout]アップロード時タイムアウトメカニズムを使用するかどうか。trueに設定する必要があります。
[ConnectionUploadTimeout]アップロードタイムアウト。北京ファイルのアップロードに時間がかかる場合があります。サーブレットが実行を完了するまでの時間が長くなるように、ビジネスニーズに応じて調整してください。前のパラメータと比較する必要があります。有効になります。一緒に使用した場合。
[AcceptCount]リクエストの処理に使用できるすべてのスレッドが使用される場合の、着信接続リクエストの最大キュー長を指定します。この数を超えるリクエストは処理されません。デフォルトは100です。
[圧縮]応答データに対してGZIP圧縮を実行するかどうか、オフ:圧縮が禁止されていることを意味します:オン:圧縮が許可されていることを意味します(テキストが圧縮されます)、強制:すべての場合に圧縮が実行されることを意味します。デフォルト値はオフです。データを圧縮した後に効果的です。帯域幅を節約するために、ページのサイズは通常約1/3に縮小できます。
[CompressionMinsize]は、圧縮された応答の最小値を示します。応答メッセージのサイズがこの値より大きい場合にのみ、メッセージが圧縮されます。圧縮機能が有効になっている場合、デフォルト値は2048です。
[CompressableMimeType]圧縮タイプ。圧縮するファイルのタイプを指定します。
[NoCompress ionUserAgents = "gozilla、traviata"]以下のブラウザでは、圧縮を有効にしないでください。
上記は一般的に使用される設定パラメータであり、他にも多くのパラメータ設定があります。HTTPコネクタとAJPコネクタのパラメータを引き続き最適化できます。 。価値、あなたは学習のために公式文書の詳細な説明を参照することができます。

vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
--71行--插入
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType= "text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"/>

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/IvyXYW/article/details/112665002