連載
» 2010年01月13日 00時00分 公開

WebアプリのHTML/画像表示を速くする3つの方法現場にキく、Webシステムの問題解決ノウハウ(2)(2/2 ページ)

[@IT編集部,@IT]
前のページへ 1|2       

静的コンテンツの配置を変える2つの解決策

 静的コンテンツは、動的コンテンツと分離してWebサーバ上に配置することで、ネットワークアクセスの回数、および、やりとりするデータのサイズを減らし、パフォーマンスの向上が図れるという。

【1】Webサーバ連携の場合

 WebサーバとJava EEサーバの単一構成のシステム構成では、フロントとなるWebサーバ側にHTMLや画像といった静的コンテンツを配置するとよい。

図3 Webサーバのみに静的コンテンツを配置 図3 Webサーバのみに静的コンテンツを配置

 配置の例を、次の図4に示そう。

図4 配置の例 図4 配置の例

 このとき、Webサーバ側には、Webアプリケーション用の空のコンテキストを用意し、Java EEサーバのコンテキストにマッピングさせる。このようなマッピングを行うには、次のようにマッピング定義を記述する。

  • WebサーバとしてHitachi Web Serverを使用している場合(mod_jk.conf)
JKMount /【APP】/* worker1(【APP】はコンテキストルート)
  • WebサーバとしてMicrosoft IISを使用している場合(uriworkermap.properties)
/【APP】/*=worker1(【APP】はコンテキストルート)

【2】リバースプロキシや負荷分散機を使用する場合

 フロントにリバースプロキシサーバサーバや負荷分散機ロードバランサ)を配置する場合、それらによってコンテンツの種別を判断し、処理を次のように振り分けることができる。

  • 動的コンテンツへのアクセスはJava EEサーバにディスパッチ
  • 静的コンテンツへのアクセスはWebサーバにディスパッチ

 振り分け処理のイメージを図5に示そう。図5は、リバースプロキシサーバによって処理を振り分けている例だ。

図5 フロントにリバースプロキシサーバや負荷分散機を配置 図5 フロントにリバースプロキシサーバや負荷分散機を配置

 この振り分けをするためには、例えばHitachi Web Serverの場合は、コンフィグファイル(httpsd.conf)のProxyPassディレクティブに、次のようにリバースプロキシの定義を記述すると効果的だという。

ProxyPass /APP/    http://j2eesvr/APP/
ProxyPass /images/ http://websvr/images/
ProxyPass /css/     http://websvr/css/

静的コンテンツの配置を考慮しよう

 今回は、静的コンテンツの配置を変更することで、パフォーマンスを向上させる手順について説明した。画像を多用して、リッチなページを作成する場合には、静的コンテンツの配置を十分に考慮するべきだろう。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。