Tomcatの展開と最適化
1.Tomcatサーバーの概要
Tomcatサーバーは、無料のオープンソースWebアプリケーションサーバーです。軽量のアプリケーションサーバーです。中小規模のシステムで、同時ユーザーが少ない場合に一般的に使用されます。JSPプログラムの開発とデバッグの最初の選択肢です。 。
一般的に、TomcatはApacheまたはNginx Webサーバーと同じですが、HTMLページを処理する機能があります。ただし、静的HTMLを処理する能力はApacheまたはNginxよりもはるかに少ないため、Tomcatは通常サーブレットとして使用されます。独自に実行されるJSPコンテナ。リアエンド。
概要:
1)無料のオープンソースWebアプリケーションサーバー
2)Apache Software Foundation Jakartaプロジェクトのコアプロジェクト
3)Apache、Sun、および一部の企業や個人が共同開発
4)Java愛好家に愛され、一部のソフトウェア開発者に認められている
5)現在はもっと人気のあるWebアプリケーションサーバー
1.Javaサーブレット
Webサーバーまたはアプリケーションサーバー上で実行されるプログラム。Webブラウザーまたは他のHTTPクライアントからの要求とHTTPサーバー上のデータベースまたはアプリケーションとの間の中間層として機能します。サーブレットを使用すると、Webフォームからユーザー入力を収集し、データベースまたはその他のソースからレコードを提示し、Webページを動的に作成できます。CGI(Common Gateway Interface)機能に似ています。
2. JSP Java ServerPagesのフルネーム
動的なWeb開発テクノロジー。JSPタグを使用して、HTMLページにJavaコードを挿入します。タグは通常<%で始まり、%>で終わります。JSPはJavaサーブレットであり、主にJavaWebアプリケーションのユーザーインターフェイス部分を実装するために使用されます。JSPは、Webフォームを介してユーザー入力データを取得し、データベースやその他のデータソースにアクセスして、動的にWebページを作成します。
3.Tomcatの3つのコアコンポーネント
Tomcatは一連のコンポーネントで構成されており、そのうち3つのコアコンポーネントがあります。
- Webコンテナ:Webサーバーの機能を完了します。
- サーブレットコンテナ:名前はcatalinaで、サーブレットコードの処理に使用されます。
- JSPコンテナ:JSP動的Webページをサーブレットコードに変換するために使用されます。
2、Tomcatのデプロイメントとインストール
1)JDKをダウンロードしてインストールします
2)Tomcatをインストールして起動します
3)仮想ホストを構成します
注:jdkはTomcatを実行するために必要な環境であるため、Tomcatをデプロイする前にjdkをインストールする必要があります。
1.ファイアウォールをオフにして、必要なソフトウェアパッケージをアップロードします
Tomcatのインストールに必要なソフトウェアパッケージを/ optディレクトリにアップロードします
所需安装包为:
apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
2.JDKをインストールします
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
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile.d/java.sh
java -version
関連する説明:
CLASSPATH:Javaプログラムをコンパイルして実行するとき、JREは、変数で指定されたパスで必要なクラス(.class)ファイルを検索します。
dt.jar:これは、主にswingパッケージであるオペレーティング環境に関するクラスライブラリです。
tools.jar:これは主に、javac、java、javap、javadocなどを含むいくつかのjdkツールのクラスライブラリです。
JDK:java開発キット(java開発ツール)
JRE:javaランタイム環境(javaランタイム環境)
JVM:java virtuakマシン(java仮想マシン)。これにより、javaプログラムは複数のプラットフォームでクラスファイルを実行できます。
検証するJavaスクリプトを書く
cd /opt
vim abc.java
public class abc {
public static void main(String[] args){
System.out.println("Hello World!")
}
}
[root@localhost?opt]#javac abc.java #用来检测JDK环境是否设置成功
[root@localhost?opt]#java abc
Hello World!
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
仮想マシンブラウザはhttp://192.168.2.7: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
##/dev/random和/dev/urandom都是伪终端,但是/dev/urandom提供的数据流更快
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
#也可以创建一个软连接,之后就能直接使用shutdown.sh和startup.sh命令了
ln -s /usr/local/tomcat/bin/* /usr/local/bin/
#查看目录
ll /usr/local/tomcat/
メインディレクトリの説明:
●bin:Tomcatを起動およびシャットダウンするためのスクリプトファイルを保存します。より一般的に使用されるのはcatalinaです。sh、startup.sh、shutdown.sh 3つのファイル
●conf:Tomcatサーバーのさまざまな構成ファイルを保存します。一般的に使用されるのは、server。xml、context。xml、tomcat-users.xml、web。xmlの4つのファイルです。
●lib:Tomcatサーバーのjarパッケージを保存します。通常、サードパーティに接続しない限り、変更を加えません。 redisなどのサービスの場合は、対応するjarパッケージを追加する必要があります
●logs:Tomcatログを
保存します●temp:Tomcatの実行時に生成されたファイルを保存します
●webapps:プロジェクトリソースを保存します
●work:Tomcat作業ディレクトリ。通常、Tomcatをクリアするときに使用されますキャッシュ
3、Tomcat仮想ホスト構成
多くの場合、会社では複数のプロジェクトを実行する必要があるため、1台のサーバーで複数のTomcatサービスを実行することは確かに不可能であり、システムリソースを大量に消費します。この時点で、Tomcat仮想ホストを使用する必要があります。たとえば、2つの新しいドメイン名www.mhh.comとwww.accp.comが追加され、これら2つのドメイン名を介して異なるプロジェクトコンテンツにアクセスできることが望まれます。
1.mhhおよびaccpの作業ディレクトリとそのホームページファイルを作成します
mkdir /usr/local/tomcat/webapps/mhh
mkdir /usr/local/tomcat/webapps/accp
echo "This is lic page\!" > /usr/local/tomcat/webapps/mhh/index.jsp
echo "This is accp page\!" > /usr/local/tomcat/webapps/accp/index.jsp
2.Tomcatのメイン構成ファイルを変更します
vim /usr/local/tomcat/conf/server.xml
--------165行附近插入---------
<Host name="www.mhh.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/mhh" path="" reloadable="true" />
</Host>
<Host name="www.accp.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/accp" 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.2.7 www.mhh.com www.accp.com" >> /etc/hosts
ブラウザアクセスhttp://www.mhh.com:8080ページ表示これはmhhページです!
ブラウザアクセスhttp://www.accp.com:8080ページ表示これはaccpページです!
第四に、Tomcatの最適化
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]圧縮タイプ。圧縮するファイルのタイプを指定します。
[NoCompressionUserAgents = "gozilla、traviata"]以下のブラウザでは、圧縮が有効になっていません
上記は一般的に使用されるいくつかの構成パラメーターであり、他の多くのパラメーター設定があり、詳細に最適化を続けることができます.HTTPコネクターおよびAJPコネクターのパラメーター属性値については、公式の詳細な説明を参照できます学習のためのドキュメント。
vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.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"
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh #参数修改后重启服务