Tomcat のパフォーマンス最適化のための Apr モジュールの構築方法

Tomcat のパフォーマンス最適化のための Apr モジュールの構築方法

序文

Tomcat は、無数のチューニング オプションを備えた、広く使用されている Java Web コンテナーです。Tomcat は主に jsp などの動的ページを実行するため、その設計は主に動的ページ向けに最適化されていますが、静的ファイルの処理効率は高くありません。

多くの場合、エンジニアは、サーバーの運用効率を向上させるために、Tomcat による静的ファイルの処理を支援するために nginx または apache サーバーを使用することを好みます。しかし、実際には、Tomcat 自体が apache メソッドを呼び出して静的ファイルを処理できるため、処理効率が大幅に向上します。

Tomcat サーバーの 3 つのモードは、bio (メッセージ ブロッキング モード)、nio (非ブロッキング モード)、apr (Apache 静的ファイル処理ライブラリを使用して静的ファイルを処理する) です。

新しい Linux に Tomcat の apr モジュールをデプロイするにはどうすればいいですか?

安定して使用されていたマシンの場合は、直接ステップ3に進むことができます。

1. インストール前にyumソースが不適切であることが判明した場合

CentOS 5 yumソースメソッドの変更

wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-5.repo

または

curl -o /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6 yumソースメソッドの変更

wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-6.repo

または

curl -o /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7 yumソースメソッドの変更

wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-7.repo

または

curl -o /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-7.repo

2. URLが正しく解析されなかった場合curl: (6) ホストを解決できませんでした

DNSを設定する手順は次のとおりです。

vim /etc/resolv.conf

#通常は空のファイルなので、ファイルに次の2つのDNS設定を追加します

ネームサーバー 114.114.114.114
ネームサーバー 8.8.8.8

3. tomcat opensslおよびaprコンポーネントをインストールする

現在、Tomcat 8.xはデフォルトでnioモードで実行されており、aprの本質はjniテクノロジを使用してオペレーティングシステムの基盤となるIOインターフェースを呼び出すことであるため、必要な依存関係を事前にインストールする必要があります。まず、opensslとaprをインストールする必要があります。

yum -y openssl-develをインストールします
yum -y インストール apr-devel

4. ネイティブ、apr、apr-util コンポーネントをインストールする

まず、tomcat の公式 Web サイトにアクセスして、native、apr、apr-util コンポーネントをダウンロードします。native は、tomcat と apr の間の中間リンクと見なすことができます。ダウンロード アドレスは次のとおりです。

http://tomcat.apache.org/download-native.cgi 、

apr アドレスは http://apache.fayea.com//apr です。apache は随時更新されるため、ブラウザで確認できます。将来的にwgetでダウンロードできなくなるかもしれないので、ここでは修正せず、各自でダウンロードできるようにしてください

解凍して再度インストールする

 tar -xvzf apr-1.6.5.tar.gz
 cd 4月-1.6.5
 ./configure --prefix=/usr/local/apr
 作成 && インストール

 tar -zxvf apr-util-1.6.1.tar.gz
 cd apr-util-1.6.1
 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

#コンパイルライブラリ expat-devel が不足しているため、make で問題が発生する可能性があります。
yum install expat-devel -y を使ってインストールすることができます(これがうまくいかない場合は、システムインストールCDからのみ見つけることができます)。

作成 && インストール

ネイティブモジュールを再度インストールする

 tar -xvzf tomcat-native-1.2.10-src.tar.gz
 tomcat-native-1.2.10-src/native/ をコピーします。
 ./configure

この時点では、opensslのバージョンが低いため、インストールが失敗する可能性があります。公式ウェブサイトにアクセスして、最新バージョンのアドレス(https://www.openssl.org/source/)を確認し、wgetで入手してください。

tar -xvzf openssl-1.1.0e.tar.gz
openssl-1.1.0e/ をインストールします
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
作成 && インストール

しばらく待つとインストールが成功します。ネイティブがコンパイルされたディレクトリに移動し、次のコマンドを再実行してインストールします。

./configure --with-ssl=/usr/local/openssl
make && make installefix=/usr/local/openssl --openssldir=/usr/local/openssl
作成 && インストール

5. tomcat設定ファイルを変更する

Tomcatサーバーのディレクトリに入り、設定ファイルconf/server.xmlを編集します。

デフォルトのプロトコル="HTTP/1.1"を次のように変更します。

プロトコル="org.apache.coyote.http11.Http11AprProtocol"

変更が完了したら保存して終了します

6. 環境変数を設定する(2つの方法)

tomcatのインストールディレクトリを入力します

bin/catalina.shファイルを開く

元の変数 JAVA_OPTS の後に対応する構成を追加し、新しい行を追加するだけです。

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

保存して終了するとインストールが完了します

Tomcatサーバーを再起動し、catalina.outの末尾にあるログを確認します。

tomcat 起動ログ

これは、tomcat Apr が正常に構成されたことを示します。

または

tomcat がシステム変数を使用して検索できるように、apr ディレクトリを環境変数に追加します。

/etc/profile を編集し、最後に次の 2 行を追加します。

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib をエクスポートします。
LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib をエクスポートします。

保存後、source /etc/profileを実行して設定を有効にします。

次にTomcatサーバーを再起動し、catalina.outの最後にあるログを確認します。

これは、tomcat Apr が正常に構成されたことを示します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Tomcatのセキュリティ構成とパフォーマンスの最適化の詳細な説明
  • Tomcat パフォーマンスの最適化 (パフォーマンスの概要)
  • Nginx+Tomcat で高性能な負荷分散クラスターを構築する方法
  • JVM Tomcat パフォーマンス プラクティス (推奨)
  • Tomcat のパフォーマンス最適化方法の簡単な概要

<<:  JavaScriptのプリミティブ値とラッパーオブジェクトの詳細な紹介

>>:  MySQL 8.0.11 圧縮版のインストールと設定方法のグラフィックチュートリアル

推薦する

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

Docker ログが多すぎてディスクがいっぱいになる場合の対処方法

複数の Docker コンテナがデプロイされたサーバーがあり、各 Docker コンテナが stde...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

Linux環境で環境変数を設定する方法

JDKダウンロードアドレス: http://www.oracle.com/technetwork/j...

MySQL における「:=」と「=」の違いの簡単な分析

=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の場合は等号の効果があ...

Webデザインと制作のテスト問題と参考回答

<br />Web デザインと制作テスト パート I 多肢選択問題 1. 単一選択問題 ...

MySQL における冗長インデックスと重複インデックスの違い

MySQL では、1 つの列に複数のインデックスを作成できます。意図的であるかどうかにかかわらず、M...

React でのポータルとエラー境界処理の実装

目次ポータルエラー境界処理エラー境界を使用しない場合はどうなりますか?注記ポータルスロットとも言えま...

Windows での Tomcat サーバーのインストールに関するチュートリアル

1 ダウンロードして準備するまず、公式ウェブサイトからTomcatをダウンロードする必要があります。...

HTML 終了タグの問題と W3C 標準

W3C の原則によれば、XML の各開始タグには対応する終了タグが必要です。つまり、<html...

Videojs+swiper が Taobao の商品詳細カルーセルを実現

この記事では、Taobao商品詳細のカルーセルを実現するためのvideojs+swiperの具体的な...

HTMLの水平線注釈とコードコメントの使い方をマスターするだけです

水平線<hr /> タグを使用して、現在の位置に水平の分割線を描画します。例: XML/...

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...

phpmyadmin を使用して MySQL 権限を設定する方法

目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...