2 tomcatによるwebアプリケーションサーバ構築 第4章...

15
この章では、TomcatがHTTPサーバーおよび データベース・サーバーと連携して稼動できるよう、 Tomcatの仮想ホス トやデータソースの設定方法について学習します。 また、Webアプリケーションをデプロイし、正常に稼動できるよう必要なライブラリの設定についても学習します。

Upload: enpel

Post on 24-May-2015

2.375 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

この章では、TomcatがHTTPサーバーおよび データベース・サーバーと連携して稼動できるよう、 Tomcatの仮想ホストやデータソースの設定方法について学習します。また、Webアプリケーションをデプロイし、正常に稼動できるよう必要なライブラリの設定についても学習します。

Page 2: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

HTTPサーバー、Tomcat、DBサーバー(PostgreSQL)が連携して稼動していくように設定していきます。まず、Tomcatに仮想ホストを追加します。次に、Webアプリケーションを Tomcat仮想ホスト上にデプロイし、HTTPサーバー経由で稼動できるようにします。 デプロイしたWebアプリケーションがデータベースを利用するものであれば、Tomcat上に利用するデータベースに応じたデータソースを設定します。

Page 3: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

HTTPサーバーは仮想ホストの機能を持っており、1台のマシン上に複数の Webサイトがあるように機能させることができます。それに応じて、Tomcatもリクエストされた完全修飾ホスト名に応じたリクエストを識別し、適切なWebアプリケーションを呼び出します。

http://www.mydomain.com/SimpleStruts/○○○スキーマ    仮想ホスト名    コンテキスト・パス   url パターン

Page 4: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

HTTPサーバー上のデフォルトのホストwww.mydomain.comと仮想ホストwww.tomcatlab.comに対して、 Tomcatにもデフォルトのホストであるlocalhostの他に追加の仮想ホストを設定して、 適切なWebアプリケーションによって処理が行われるように設定していきます。追加したwww.tomcatlab.comというホストにWebアプリケーションをデプロイしていきます。

Page 5: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

デフォルトの仮想ホスト(localhost)以外の仮想ホストを使用するのであれば、その仮想ホスト用のWebアプリケーションをデプロイするフォルダを用意します。 デフォルトの仮想ホストは、%CATALINA_HOME%\webapps\にアプリケーションがデプロイされます。フォルダの名前や位置は任意ですが、Tomcatからアクセスできるようアクセス権を設定します。ここでは、sitesフォルダの下に、リクエストされるドメイン名に相当するフォルダ(例えば、tomcatlab.comフォルダ)を作成し、さらにWebアプリケーションのデプロイ先として、例えばwebappsフォルダを作成しておきます。

Page 6: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

webapps下に、他のWebアプリケーションのフォルダと並んでROOTフォルダを作成しておくと、 「http://仮想ホスト名/」でアクセスされた場合のデフォルトのコンテンツを置いておくことができます (http://仮想ホスト名/コンテキスト・パス/でアクセスされたのではなく)。仮想ホストwww.tomcatlab.comに対応するフォルダの下にwebというフォルダがありますが、これは、Apacheに仮想ホストを作成し、静的コンテンツを返させる場合のドキュメント・ルートです。 Apacheのhttpd.confに仮想ホストの設定を行い、ドキュメント・ルートとしてそのフォルダが指定されることを想定しています。

Page 7: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

Tomcat上に仮想ホストを追加します。%TOMCAT_HOME\conf\server.xmlファイルで設定します。 name属性とappBase属性は指定が必須ですので、仮想ホスト名としてnameを、Webアプリケーションのデプロイ先としてappBaseを指定します。server.xmlを編集し、その内容を反映させるためには、Tomcatの再起動が必要です。

Page 8: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

上記の属性にはありませんが、deployOnStartup="true"と言う属性もあり(デフォルトはtrue)、 この仮想ホストのappBaseにあるWebアプリケーションをTomcat起動時に自動的に配備するかどうかのフラグです。deployOnStartup="true"でかつautoDeploy="true"であると、サーバー起動時に配備された後、ホット・デプロイという形で再配備されるため、 deployOnStartup="false"にしておくとよいでしょう。

Page 9: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

一時的かつ動的に(Tomcatを再起動することなく)仮想ホストが必要であれば、 Tomcatに標準添付されているHost Manager Webアプリケーションを使用して追加することができます。Host Manager Webアプリケーションは、server.xmlに設定情報を保管しないため、Tomcatを再起動すると設定した仮想ホストは削除されてしまいますが、 一時的な利用であれば、このツールを使って動的に追加することができます。

Page 10: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

Host Manager Webアプリケーションにアクセスする際は認証が必要となりますので、admin-guiロールをもつユーザーを用いてログインします(adminロールでも可)。通常は、Tomcatのインストール時に設定したユーザーがadmin-guiロールをもつように設定されています。ユーザー情報は、%CATALINA_HOME%\conf\tomcat-users.xmlに設定されています。図のようにNameに仮想ホスト名、appBaseにWebアプリケーションのインストール先を設定し、必要に応じてAutoDeploy等の設定も行います。

Page 11: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

Host Manager Webアプリケーションを使用して仮想ホストを追加すると、%CATALINA_HOME%\conf\Catalina\サーバー名\manager.xmlファイルが作成されているため、マネージャ・ツールが使用できます。デフォルトの仮想ホストと同様に、http://追加した仮想ホスト名:8080/manager/html/にアクセスし、アプリケーションの稼働状況を確認したり、Webアプリケーションのデプロイを行うことができます。

Page 12: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

AJP 1.3コネクタを使用して、外部HTTPサーバーと連携する設定を行います。Tomcat単体ではなくHTTPサーバーを経由することにより、Apacheがリバース・プロキシとして動作します。 プロキシは元々、企業等のファイアウォール内におかれたHTTPサーバーに対して、外部のHTTPサーバーの代役をさせるためのものですが、 その機能をうまく利用し、アプリケーション・サーバーに直接アクセスさせないことにより、セキュリティを高めることができます。

Page 13: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携
Page 14: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

server.xmlファイルにおいて、 8009ポートで HTTP サーバーと接続できる設定になっているかを確認します。

■Connectorの定義(server.xmlファイル):次の定義が< Service >タグ内にあれば有効です。  < Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Page 15: 2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携

ApacheとTomcatが連携する場合、Apache 2.2ではmod_proxy_ajpモジュールを使用します。 Apacheの構成ファイルに、LoadModuleディレクティブを用いてmod_proxyモジュールとmod_proxy_ajpモジュールがロードされるように設定します。さらに、リクエストされたコンテキスト(Webアプリケーション)が、Tomcatの8009 AJPコネクタに接続されるように、ProxyPassディレクティブを用いて設定します。 簡単に表現すれば、プロトコルを読み替えることになります。