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 圧縮版のインストールと設定方法のグラフィックチュートリアル

推薦する

フロントエンドネットワーク、JavaScriptの最適化、開発のヒントについて簡単に説明します。

1. ネットワークの最適化YSlowには23のルールがあります。これら数十のルールは、主に、不要な...

CSS における @ の使用法の概要 (例と説明付き)

@ ルールは、CSS の実行または動作に関する指示を提供する宣言です。各宣言は @ で始まり、その...

Vue実装のカウンターケース

この記事では、カウンター表示を実現するためのVueの具体的なコードを例として紹介します。具体的な内容...

JavaScript プロトタイプのデータ共有とメソッド共有の実装を調べる

データ共有プロトタイプにはどのようなデータを書き込む必要がありますか?共有する必要があるデータはプロ...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...

純粋な CSS3 で水平無限スクロールを実装するためのサンプル コード

この記事の例はすべて小さなプログラムで書かれていますが、実装される機能には影響しません。 wxmlル...

MySQL エラー: 接続数が多すぎる場合の解決策

MySQLデータベースの接続が多すぎますこのエラーは明らかに、mysql_connect の後に m...

MySQLテーブル構造を変更するコマンドを表示する

簡単な説明エディターはデータベースのエンコードが間違っているために問題に遭遇することが多く、これは頭...

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

CSS を使用して波状のウォーターボール効果を実装するためのサンプルコード

今日は新しいCSS特殊効果、波型ウォーターボール効果を学びました。これもとても美しいです HTML:...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

更新とデータ整合性処理のためのMySQLトランザクション選択の説明

MySQL のトランザクションはデフォルトで自動的にコミットされます (autocommit = 1...

複数の例で HTML フォームを使用する方法

参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...

MySQL スロークエリログの役割と公開

序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...