開発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

多言語対応について

最近、日英中以外の言語を増やしたいというお問い合わせを受けることが多くなってきましたので、その方法等をまとめさせて頂きます。 intra-martにおける多言語対応とは? intra-mart Ver …

no image

データベースの登録、更新、削除メソッドをカスタマイズする

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。 最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 データベースを操作するプログラムを …

no image

intra-mart Accel Kaiden! のガジェットを使いこなそう!①

以前のintra-mart Accel Kaiden ! の記事で紹介した「ガジェット」は、申請書内の関連する画面項目のグループや入力チェックとして利用できますが、もっと便利に利用するための設定機能も …

no image

intra-mart Advent Calendar 2013 第15日:IM-Workflowの裏技

この記事は、intra-mart Advent Calendar 2013 第15日の記事です。 日曜日なので、簡単な記事ですが、IM-Workflowの裏技をご紹介します。 ■未処理・処理済などの案 …

no image

intra-mart Advent Calendar 2013 第7日:個人設定メニューの順番を変更する方法(右上のヤーツ)

この記事は、intra-mart Advent Calendar 2013 第7日の記事です。 今回は「個人設定メニューの順番変更方法」をご紹介したいと思います。 intra-mart Accel P …