1. はじめに
Web テクノロジーをベースとしたインターネット/イントラネットは、TCP/IP プロトコルに基づいた、ユーザーが利用できる企業イントラネットです。低コストで使いやすいクライアント ブラウザを介して、いつでもどこでも企業の Web サイトにある必要なデータを確認できます。ブラウザ クライアントの操作インターフェイスの一貫性により、C/S モードのクライアント プログラムの多様性が回避されると同時に、サーバー側のオープンで標準ベースの接続ソリューションにより、企業はインターネットを介して外部の世界に簡単にアクセスできます。 Web 情報は動的であり、インタラクティブな公開方法は企業のサービス品質を根本的に変え、ビジネス チャンスを増大させます。
多くのユーザーの目から見ると、Web Web サイトの成否は主に提供するコンテンツと機能にあり、これらのコンテンツと機能をサポートする Web サーバーは非常に重要な役割を果たします。
2. Tomcat コンテナー
Tomcat は、Apache Foundation の Jakarta プロジェクトの中核プロジェクトであり、Apache、Sun、およびその他、企業と個人が共同で開発したもの。 Sun の参加とサポートのおかげで、最新のサーブレットと Jsp の仕様を常に Tomcat に反映できます。
Tomcat は堅牢な独立した Web サーバーおよびサーブレット コンテナですが、その Web サーバー機能は、Apache Web サーバーなどのより堅牢な Web サーバーほど完全ではありません (たとえば、Tomcat には多数のオプションがありません)。モジュール)。ただし、Tomcat は無料のオープンソース ソフトウェアであり、その開発に専念する専門家が多数います。
2.1 Linux での Tomcat のインストール
Tomcat をインストールする前に、j2sdk (Java 2 Software Development Kit) をインストールする必要があります。j2sdk をインストールする手順は次のとおりです。
1) http:/ に移動し、/www.java.sun.com から j2sdk-1_4_2_04-linux-i586-rpm.bin などの j2sdk をダウンロードします。
2) ターミナルで j2sdk-1_4_2_04-linux-i586-rpm.bin があるディレクトリに移動し、コマンド chmod +x j2sdk-1_4_2_04-linux-i586-rpm.bin を入力して追加します。実行権限。
3) コマンド ./j2sdk-1_4_2_04-linux-i586-rpm.bin を実行して、ファイル j2sdk-1_4_2_04-linux-i586.rpm を生成します。
4) コマンド chmod +x j2sdk-1_4_2_04-linux-i586.rpm を実行し、j2sdk-1_4_2_04-linux-i586.rpm に実行権限を追加します。
5) コマンド rpm –ivh j2sdk-1_4_2_04-linux-i586.rpm を実行して、j2sdk をインストールします。
6) インストール インターフェイスに認証同意書が表示されます。Enter キーを押して、j2sd を受け入れ、/usr/java/j2sdk1.4.2_04 にインストールします。
7) 環境変数を設定し、/etc/profile.d/ ディレクトリにファイル java.sh を作成します。ファイルの内容は次のとおりです:
#set java experience
export JAVA_HOME。 =/usr/java /j2sdk1.4.2_04
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/ jre/bin:$ PATH
8) コマンド chmod 755 /etc/profile.d/java.sh を実行して、java.sh に権限を割り当てます。
9) ターミナルで javac –help および java –version コマンドをそれぞれ実行します。関連する情報が表示された場合は、j2sdk が正常にインストールされたことを意味します。
次に、tomcat をインストールします。 Tomcat をインストールする手順は次のとおりです。
1) http://jakarta.apache.org/tomcat/index.html にアクセスし、tomcat のバイナリ バージョンをダウンロードします。 jakarta-tomcat-5.5.10.tar.gz として、/usr/local ディレクトリに解凍します:
cd /usr/local
gzip –zxvf jakarta-tomcat-5.5.10.tar.gz
2) $tomcat/bin/startup.sh および shutdown.sh ファイルを変更します。
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CATALINA_HOME=/usr/local/tomcat-5.5。 10
export CLASSPATH =.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/java/jdbc
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
3)startup を実行します。sh は http://localhost:8080/ にある Tomcat のデフォルト ページにアクセスできます。
2.2 Tomcat を単独で実行する利点
1) 簡単セットアップします。 Tomcat をダウンロードし、いくつかの構成を設定すれば完了です。 Web サーバー コネクタを他の Web サーバーに統合するのに時間を費やす必要はありません。
2) コネクタを気にする必要はありません。他の Web サーバーと Tomcat の間のパフォーマンスや接続の問題をトラブルシューティングする必要はありません。
3) 安全保護が強化されています。 C および C++ で書かれた他の Web サーバーと比較して、Tomcat はリモート バッファ オーバーフロー攻撃に対してより耐性があります。 Tomcat の Java 仮想マシンはネットワークとオペレーティング システムの間に配置されるため、ほぼすべての種類のバッファ オーバーフロー攻撃を防ぐことができます。 Tomcat のセキュリティ保護ドメインを使用して、さまざまなリソースへのアクセスを指定できます。
4) 移植が簡単です。 Tomcat サーバー (およびアプリケーション) は、さまざまなサーバー、オペレーティング システム、さらにはアーキテクチャに移植できます。 Tomcat は Java で記述されているため、新しいコンピュータのアーキテクチャが元のコンピュータと異なる場合でも、そのディレクトリ構造全体の内容をまったく変更せずに他のコンピュータにコピーして実行できます。
2.3 Tomcat を単独で実行する場合の欠点
1) Tomcat をサポートするソフトウェアは比較的少ないです。 Tomcat の組み込み Web サーバーは、Apache httpd Web サーバーに比べてソフトウェア サポートが少ないです。
2) Tomcat の Web サーバーにはほとんど機能がありません。 Tomcat Web サーバーと比較して、Apache httpd サーバーはより完全な機能を備えています。
3)虽然Tomcat运行速度快,但还没有Apache httpd快。Tomcat服务器比Apache httpd慢,不过,它还在改进中,而且仍然非常快,快到足以运行今日大多数的企业网站,只是在提供静态页面内容上没有Apache快。
3、Apache Web服务器
Apache是根据NCSA的服务器发展而来的,NCSA是最早出现的Web服务器程序之一,由伊利诺斯大学Urbana-Champaign分校的美国国家超级计算应用中心开发。在发展初期,Apache主要是一个基于UNIX系统的服务器,它的宗旨就是建成一个基于UNIX系统的、功能更强、效率更高并且速度更快的WWW服务器,这就决定了它是从其他的服务器演变而来的,并且添加了大量补丁来增强它在某一方面的性能,所以它就被命名为“APA+CHy Server(一个补丁组成的服务器)”。发展到今天,Apache已经被移植到很多平台上了。
Apache的开发遵循GPL协议,由全球的志愿者一起开发和维护。在保持强大的功能及不断更新的同时,它仍然是免费的,并且公开源代码。
3.1 Apache サーバーのインストール
Apache サーバーは以下の 3 つの方法でインストールできます。
1) インストールされている Linux バージョンが Apache を使用している場合、インストールするサーバーを選択するときに httpd サービスを選択すると、Apache のインストールと基本構成が自動的に完了します。
2) 実行可能ファイル ソフトウェア パッケージを使用します。比較的簡単なため、コンパイル作業にあまり慣れていないジュニア ユーザーに適しています。ソフトウェア パッケージ apache_1.2.4.e.tar.gz をダウンロードし、コマンド tar xvzf apache_1.2.4.e.tar.gz を実行してインストールを完了します。 RedHat Linux を使用している場合は、apache_1.2.4.rpm ソフトウェア インストール パッケージをダウンロードし、rpm –ivh apache_1.2.4.rpm コマンドを使用してインストールすることもできます。
3) Apache サーバーを最大限に活用したい場合は、Apache を自分でコンパイルし、その機能をカスタマイズする必要があります。 Apache ソース コードを含むソフトウェア パッケージ apache_1.2.4.tar.gz をダウンロードし、tar コマンドを使用して解凍し、現在のディレクトリを Apache ソース コード ディストリビューションの src ディレクトリに変更します。 tmpl) を構成ファイルとして編集します:
Makefile 構成オプション: いくつかのコンパイル オプション:
。「CC=」行は、コンパイルに使用するコンパイル ソフトウェアを指定します (通常は「CC=gcc」)。 "; 必要に応じて追加します C コンパイル ソフトウェアに指定されたフラグ (パラメーター) を使用できます:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
システムが特別なライブラリとインクルード ファイルを必要とする場合は、ここで指定できます。
EXTRA_LIBS=
EXTRA_INCLUDES=
コード最適化設定を変更したい場合は、次の文のコメントを解除して必要な値に変更する必要があります:
#OPTIM=-O2
ルール設定オプション: どの機能が必要かを決定するために使用されます。通常は変更する必要はありません。
モジュール構成: モジュールは、Apache カーネルに新しい機能を追加する Apache のコンポーネントです。モジュール構成を使用することで、Apache サーバーに必要な機能をカスタマイズできます。この部分も Apache の柔軟性の表れです。モジュール設定行は次のとおりです。
AddModule modules/standard/mod_env.o
Apache サーバーに機能が必要な場合は、AddModule ステートメントを使用してそのモジュールを設定ファイル Configuration に追加します。
Apache のモジュール関数を以下に示します。
モジュール名 関数のデフォルト
mod_access ホストベースのアクセス制御コマンドを提供します y
mod_actions MIME タイプに基づいて CGI スクリプトまたは HTTP リクエスト メソッドを実行する機能 y
mod_alias URL リダイレクト サービスを実行できます。 y
mod_asis HTTP ヘッダーなしでドキュメントをクライアントに送信できるようにします。 y
mod_auth テキスト ファイルに保存されたユーザー名とパスワードを使用した認証をサポートします。 y
mod_auth_dbm DBM ファイルの使用をサポートします。基本的な HTTP 認証を保存します n
mod_auth_mysql 基本的な HTTP 認証に MySQL データベースの使用をサポートします n
mod_auth_anon 認証が必要な領域への匿名アクセスを許可します n
mod_auth_external サードパーティ認証の使用をサポートします n
mod_autoindex は、インデックス ファイルが見つからない場合に動的ディレクトリ リストを自動的に生成します y
mod_cern_meta はメタ情報のサポートを提供します n
mod_cgi は CGI をサポートします y
mod_dir は末尾のスラッシュ文字を含まないコマンドをリダイレクトできます リクエスト y
mod_env を使用すると、環境変数を CGI または SSI スクリプトに渡すことができます。 n
mod_expires を使用すると、サーバーがリクエストに応答したときに Apache が Expires をどのように処理するかを決定できます。 y
mod_headers を使用すると、HTTP 応答ヘッダーの操作が可能になります。 y
mod_imapグラフィックマッピングのサポートを提供します n
mod_include は SSI サポートを有効にします n
mod_info はサーバー構成の包括的な説明を提供します y
mod_log_agent はユーザーエージェント情報を別のログファイルに保存できます n
mod_log_config はログログをサポートします y
mod_log_referer は、リクエスト内の Referer ヘッダーをログに書き込む機能を提供します。 n
mod_mime は、ドキュメントに関するメタ情報をクライアントに提供するために使用されます。 y
mod_negotiation は、コンテンツ ネゴシエーションのサポートを提供します。 y
mod_setenvifカスタム環境変数を作成できます。 y
mod_speling を使用すると、スペルミスや大文字小文字の違いを含む URL リクエストを処理できます。 n
mod_status を使用すると、管理者が WEB を通じて Apache を管理できます。 y
mod_unique_id は、非常に特殊な条件下で一意であることが保証された一意の識別子を各リクエストに提供します。
src ディレクトリで実行します: "./configure";
Apache をコンパイルします: コマンド "make" を実行します。正常な実行可能ファイル httpd を /etc/httpd/bin ディレクトリにコピーし、Apache ディストリビューション構成ファイル (access.conf、httpd.conf、mime.types、srm.conf ファイル) を /etc/httpd/conf ディレクトリにコピーします。この時点で、インストールは完了です。
3.1 Apache httpd を単独で実行する利点 1) Apache httpd は、Tomcat の組み込み Web サーバーよりも高速です。
2) ソフトウェアサポートの追加。 Apache httpd には、サポートするソフトウェア リンクの巨大なライブラリがあります。
3) 素早く開始および停止します。一般に、Apache httpd の起動時間と停止時間は Tomcat よりも短くなります。
3.2 Apache httpd を単独で実行する場合の欠点 1) セットアップが難しい。 Apache Web サーバーをインストールして Tomcat とともに実行することは、Tomcat を単独で実行するよりもはるかに複雑です。
2) 動的 Web コンテンツのサービスが遅くなります。
3) セキュリティの脆弱性。 Apache httpd はバッファ オーバーフロー攻撃に対してより脆弱です。
4) アップグレードはさらに複雑です。
4. Tomcat と Apache の統合 Tomcat を Apache httpd Web サーバーに統合するには、いくつかの方法があります。
1) 異なるポート番号を使用して負荷を分散します。
この方法は実装が最も簡単です。同じ Web サーバー マシン上の Tomcat Web サーバー ポート (8080 など) に接続するために、既製の Web ページ ディレクトリに URL を設定するだけです。実際、2 つの完全な Web サーバー プログラムが実行されますが、それらの間には実際の統合はありません。
2) Apache から Tomcat のプロキシ サーバーにリクエストを送信します。
このメソッドは、メイン サーバーの HTTP プロキシ メカニズムを使用します。プロキシ メカニズムは、ゲートウェイ上で実行されている Web サーバーから外部インターネット上の Web サイトに Web トラフィックを再ルーティングするためによく使用されます。ただし、Web サイト領域またはディレクトリの情報フローを Tomcat Web サーバーにリダイレクトするために使用することもできます。
3) mod_jk2 コネクタを使用します。
このメソッドは、既存の Apache httpd Web サーバー内で実行されるコネクタ モジュール (mod_jk など) を使用し、特定のプロトコルを介してリクエストを Tomcat に迅速に転送します。これは、Tomcat を Apache httpd に接続する標準的な方法です。
4) 2 つのプログラムを 1 つのプロセスで実行します。
この方法では、JVM を Apache httpd のプロセス空間で実行できるようにすることで、「完全に統合された」機能を提供できます。これは最も効率的な方法ですが、サーバーに最も依存する方法でもあります。
[参考文献]
[1] Jason Brittain、Ian F. Darwin、Tomcat: The Definitive Guide、2003
[2] Jason Brittain、Ian F. Darwin、O'Reilly 台湾翻訳およびZhu Encong による翻案、The Authoritative Guide to Tomcat、2004 年
[3]http://www.apache.org
[4]http://www.bb.gilet.edu.cn