開発Blog

ロードバランス環境の構築方法

投稿日:2014-04-17 更新日:

Webサーバと intra-mart Accel Platform 間でロードバランスを行いながら連携を行う設定例を紹介します。

以下の手順を参考として、各種要件・ご利用の環境に合わせて環境構築を行ってください。

Apache HTTP Server を使用している場合

はじめに

ここでは Apache のロードバランス機能を利用し、Webサーバと intra-mart Accel Platform の連携を行う場合の設定例を紹介します。

前提条件

「静的ファイルの配置」および「アクセスログの編集」の設定が終わっていることとします。

設定手順はApache HTTP Server を参照してください。

モジュールの取得

本ドキュメントでは以下の Apache モジュールを利用します。

取得に当たっては、Apacheの各マニュアルなどを参照してください。

  • mod_proxy
  • mod_rewrite
  • mod_headers
  • mod_proxy_balancer
  • mod_slotmem_shm (Apache 2.4 以降の場合)
  • mod_lbmethod_byrequests (Apache 2.4 以降の場合)
  • mod_proxy_wstunnel

手順

以降の手順では下記の環境を想定した手順を記載します。

コンテキストパス imart
apacheのドキュメントルート /usr/local/apache/htdocs
静的ファイルの展開フォルダ /usr/local/apache/htdocs/imart
ロードバランスするサーバー1のIPアドレス 192.168.1.1
ロードバランスするサーバー1のポート番号 8080
ロードバランスするサーバー2のIPアドレス 192.168.1.2
ロードバランスするサーバー2のポート番号 8080
  1. <%APACHE_HOME%/conf/httpd.conf> ファイルを開きます。
  2. Dynamic Shared Object (DSO) Support エリアに以下の設定を追加またはコメントアウトを外してください。
  3. Apache 2.4 以降を使用している場合、Dynamic Shared Object (DSO) Support エリアに以下の設定を追加またはコメントアウトを外してください。
  4. 末尾に以下の設定を追加してください。
  5. Apache を再起動してください。

Internet Information Services(IIS) を使用している場合

はじめに

ここでは IIS のサーバーファーム機能を利用し、Webサーバと intra-mart Accel Platform の連携を行う場合の設定例を紹介します。

前提条件

IIS の設定が終わっていることとします。

設定手順はInternet Information Services(IIS) を参照してください。

手順

以降の手順では下記の環境を想定した手順を記載します。

intra-mart Accel Platform のコンテキストパス imart
IIS のルート ディレクトリ C:\inetpub\wwwroot
静的ファイルの展開フォルダ C:\imart
ロードバランスする Resin サーバ1の IP アドレス 192.168.1.1
ロードバランスする Resin サーバ1のポート番号 8080
ロードバランスする Resin サーバ2の IP アドレス 192.168.1.2
ロードバランスする Resin サーバ2のポート番号 8080
  1. から下記の設定を取り除きます。

    これにより、 の内容は以下のようになります。
  2. Server Farms のサブメニューより「Create Server Farm...」をクリックします。
  3. 「Server farm name」に「appservers」を設定し、「次へ」をクリックします。
  4. 「Server address」に「192.168.1.1」を設定し、「Advanced settings」をクリックします。
  5. 「applicationRequestRouting」の「httpPort」を「8080」に設定し、「Add」をクリックします。
  6. 同様に「192.168.1.2」を登録します。
  7. 「終了」をクリックします。
  8. サーバーファームへのリライトルールを自動で作成するかと聞かれます。本ドキュメントでは手動で作成するため、「いいえ」をクリックします。
  9. インターネット インフォメーション サービス (IIS) マネージャー より「IIS サーバ(ここでは WIN-QDQ41RVOU80)」「URL 書き換え」「機能を開く」の順にクリックします。
  10. 「規則の追加」をクリックします。
  11. 「空の規則」、「OK」をクリックします。
  12. 以下のように設定し、「適用」をクリックします。
    名前 ReverseProxyInboundStatic
    要求された URL パターンに一致する
    使用 正規表現
    パターン
    ※コピー&ペーストする場合は、改行コードを外し1行にしてください。
    大文字と小文字を区別しない チェックする
    アクションの種類 なし
    後続の規則の処理を停止する チェックする

  13. 同様に、以下の規則を設定します。
    名前 ReverseProxyInboundDynamic
    要求された URL パターンに一致する
    使用 正規表現
    パターン ^imart/(.*)
    大文字と小文字を区別しない チェックする
    アクションの種類 サーバー ファームにルーティング
    スキーム http://
    サーバー ファーム appservers
    パス /imart/{R:1}
    後続の規則の処理を停止する チェックする

  14. 「appservers」の「Server Affinity」設定画面を開きます。
  15. 「Client affinity」をチェックし、「適用」をクリックします。
  16.  IIS を再起動してください。

-開発Blog
-

執筆者:


  1. 丸木 より:

    ご返信いただきありがとうございます。

    サイト個別に書き換え規則を設定しようとしたところ、ReverseProxyInboundDynamicのアクションの種類で「サーバーファームにルーティング」が表示されず選択できませんでした。「書き換え」で設定したところ、サイト全体に設定していた時のソース(IISのApplicationHost.config)と同じだったのですが、IISマネージャからは設定が異なるようにみえるので、こちらの設定で問題ないか懸念しています。何かアドバイス等いただければ幸いです。

    複数のサイトを同時にオープンすることには成功しています。

    • imdeveloper より:

      丸木様

      コメントありがとうございます。
      丸木様が試されている方法ですと、サーバーファームを作成せず代わりに複数サイトを作成しているかと思われるため、ReverseProxyInboundDynamic の設定時にサーバーファームはご指摘の通り表示されないと思われます。
      本ブログで ReverseProxyInboundDynamic に対して行っている設定は、ステップ2~7にて IIS に登録した複数サーバー(これをサーバーファームと呼びます)にルーティング(ロードバランス)する設定例でございます。

      複数サイトへ振り分ける場合、ご認識の通り一般的には「書き換え」で設定を行うことになるかと思われます。

      IIS の ApplicationHost.config と IIS マネージャーの設定が異なるように見える件につきましては、IIS マネージャーから見える設定が有効となっている認識でよいかと思います。

      以上、よろしくお願いします。

      • 丸木 より:

        ご返信いただきありがとうございます。

        つまり、現在は「書き換え」になっているため、複数サーバー(サーバーファーム)へルーティング(ロードバランス)する設定になっていない認識でよろしいでしょうか。

        当初は本ブログご記載の通り、複数のサーバ(サーバーファーム)にルーティングする設定をしていました。しかし、上記例ではサイト全体にルーティング規則が設定されるので、サイト個別毎に振り分ける(たとえば、Aサイトはサーバファームにルーティングする設定で、Bサイトは書き換え規則なし)設定にできないものでしょうか。

        #上手く伝わっておらず申し訳ございません

        やりたいこと(例)
        Aサイト:サーバファームでルーティング(複数台のAPサーバへ割り振る)
        Bサイト:規則なし
        *両サイトは同時オープン

        しかし、現状は以下のようになっている(?)
        Aサイト:書き換え(サーバファームにルーティングしているわけではない)
        Bサイト:規則なし

  2. imdeveloper より:

    コメントありがとうございます。

    intra-mart側の制限は特にございませんので、サイト毎等、ご自由にURL書き換えを設定していただいて問題ありません。

    また何かご不明点がありましたら遠慮無くご連絡くださいませ。
    以上、よろしくお願いいたします。

  3. 丸木 より:

    いつも当ブログ参考にさせていただいております。

    早速ですが、上記IISを使用する場合について以下質問させていただけますでしょうか。

    手順9でIIS全体にURL書き換え規則を設定されていますが、
    こちらの設定はサイト毎に設定することは可能でしょうか?
    (intra-martの制限等で、書き換え規則をサイト毎に記載できない、
    または設定が有効にならない等はございますでしょうか)

    複数のサイトを同時(URL書き換え規則ありのサイトと、書き換え規則なしのサイトを同時)にオープンしたいと考えています。

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

IM-Workflow パラメータチューニング

IM-Workflowは、パッチにより様々なパラメータが追加されています。 特にパッチ4と先日リリースしたパッチ5での効果が大きいので、以下にご紹介致します。 XMLキャッシュ パッチ4からの機能です …

no image

トラブル時の現状把握に必要な情報

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。 最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 大規模システムが増加するに従い、弊 …

no image

Formaパッチ2リリース!さらに楽しく、使いやすく改良♪

IM-FormaDesigner Ver.7.2のパッチ2を本日、リリースいたしました。 パッチ2では、IM-共通マスタとIM-Workflowの画面アイテムの追加や、後処理機能の追加等々を行っていま …

no image

intra-mart Advent Calendar 2013 第22日:アナウンス機能について(2013 Winter新機能)

この記事は、intra-mart Advent Calendar 2013 第22日の記事です。 今回は、Accel Platform 2013 Winter(Felicia)からの新機能、アナウンス …

no image

トイレの空き状況の見える化システム

初めまして、開発本部の矢野と申します。 この記事では今までとはちょっと違い、intra-mart 社の普段の雰囲気を感じていただくために、製品の説明や紹介ではなく、私がつい最近取り組んだ日常的な仕事に …