検索
連載

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

本連載は、日立製作所が提供するアプリケーションサーバ「Cosminexus」の開発担当者へのインタビューを通じて、Webシステムにおける、さまざまな問題/トラブルの解決に効くノウハウや注意点を紹介していく。現在起きている問題の解決や、今後の開発のご参考に(編集部)

Share
Tweet
LINE
Hatena
前のページへ |       

静的コンテンツの配置を変える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/

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る