ビギナーズガイド

ゼロから始めるLinuxサーバー

Linux初心者を対象として、少しずつサーバー構築を目指します。「Windowsなら多少分かるが、Linux、Unixに詳しくなくて、どこから手を付けたらいいのやら」という人向けです。サーバーの構築とともにセキュリティの確保等も併せてお届けします。

全て表示する >

ゼロから始めるLinuxサーバー #050

2003/10/26

==========================================================================
  ゼロから始めるLinuxサーバー                          #050  2003/10/26
                                                http://www.urizinlab.jp/ 
==========================================================================


==========================================================================

 おはようございます。
今週もまた「なんとか土曜日中に」と思っていたのに、夕方から眠ってしまって
気が付けば真夜中・・・。(--;)
 ここのところ、週末に仕事が固まっていて時間をとることが難しい状態が続い
ています。度々配信が遅れて申し訳ありませんが、ご了承下さいませ。

 今回で「Squid」は最終回です。今回は「Squid」サーバーの負荷分散の方法な
どを説明します。

==========================================================================

---- INDEX ---------------------------------------------------------------

  ◆1 「Squid」の負荷分散

--------------------------------------------------------------- INDEX ----


== ◆1 「Squid」の負荷分散 =============================================

 企業や学校などでは、インターネットへアクセスするクライアント機が多数存
在するのが一般的です。その場合、1台のキャッシュ・サーバーで多数のクライ
アントを捌くには荷が重すぎ、FTTHやADSLなどの高速接続環境であっても、キャ
ッシュ・サーバーがボトルネックになってしまう場合があります。
 こういう場合に有効なのが、「Squid」サーバーを複数台導入して処理を分散さ
せる環境にすることです。

  −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 まずは下図を見て下さい。

              ┌───────┐
              │インターネット│
              └───┰───┘
          ┏━━━━━━━┻━━━━━━┓
          ┃メイン・キャッシュ・サーバー┃
          ┃     192.168.0.1    ┃
          ┗━━━┳━━━┳━━━┳━━┛
       ┏━━━━━━┛   ┃   ┗━━━━━━┓
    ┏━━┻━━━┓   ┏━━┻━━━┓   ┏━━┻━━━┓
    ┃  サブA  ┃   ┃  サブB  ┃   ┃  サブC  ┃
    ┃ 192.168.1.1┃   ┃ 192.168.2.1┃   ┃ 192.168.3.1┃
    ┗━━┯━━━┛   ┗━━┯━━━┛   ┗━━┯━━━┛
   ┌───┴───┐  ┌───┴───┐   ┌──┴────┐
   │   LAN A   │  │   LAN B   │   │   LAN C   │
   │192.168.1.2 〜│  │192.168.2.2 〜│   │192.168.3.2 〜│
   │ 192.168.1.254│  │ 192.168.2.254│   │ 192.168.3.254│
   └───────┘  └───────┘   └───────┘

 Squidキャッシュ・サーバーを4台導入します。そして、その内の1台のIPアド
レス「192.168.0.1」とします。残りのサーバーにそれぞれ、「192.168.1.1」、
「192.168.2.1」、「192.168.3.1」を割り当てます。「192.168.1.1」を割り当て
た「LAN A」を「192.168.1.0/255.255.255.0」とし、「192.168.2.1」を割り当て
た「LAN B」を「192.168.2.0/255.255.255.0」とし、「192.168.3.1」を割り当て
た「LAN C」を「192.168.3.0/255.255.255.0」とします。
 「LAN A」に属するクライアントは「サブA」のSquidサーバーを利用し、「LAN 
B」では「サブB」、「LAN C」では「サブC」を利用することにします。

 このような環境で、例えば、「LAN B」に属するクライアントがインターネット
上のWebサーバーへアクセスした場合、

 1:サブBのSquidサーバーに目的のWebコンテンツがキャッシュされていたら
   そのデータをクライアントに送信します。
 2:サブBのSquidサーバーになければ、メインまたは他のサブ・サーバーに問
   い合わせし、誰かが目的のデータを持っていたならば、そのデータを受け
   取って、クライアントに送信します。
 3:サブBもメインも他のサブ・サーバーも目的のコンテンツデータを持って
   いない場合は、メインのSquidサーバーがインターネットへ問い合わせを行
   います。
 4:3の場合でメインのSquidサーバーが応答しない場合は、サブBがインター
   ネットへ問い合わせを行う。

のいずれかになります。

  −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 では、負荷分散を行うための設定方法を説明しましょう。設定は「squid.conf」
で行います。

 負荷分散を行うために、それぞれのキャッシュ・サーバーがデータをやり取り
するには「ICP(Internet Cache Protocol)」というプロトコルを使います。ICPプ
ロトコルはポート番号「3130」を使ってUDPで通信を行います。

 なお、メインやサブのキャッシュ・サーバーに割り当てるIPアドレスなどは上
図と同じにして説明していますので、皆様の環境に合わせて変更してください。


 まず、メインのSquidサーバーの設定です。メインにはサブからの接続のみを許
可する設定にします。

 A1:  http_port 3128
 A2:  icp_port 3130
   :     :
 B1:  acl sub_a src 192.168.1.0/255.255.255.0
 B2:  acl sub_b src 192.168.2.0/255.255.255.0
 B3:  acl sub_c src 192.168.3.0/255.255.255.0
   :     :
 C1:  http_access allow sub_a sub_b sub_c
 C2:  http_access deny all

 A1の行でHTTPプロトコルが使うポートを「3128」にし、A2の行でICPプロトコル
が使うポートを「3130」にします。
 B1〜3でそれぞれのサブ・キャッシュ・サーバーが属するネットワークの範囲を
指定し、それぞれに名前(sub_a、sub_b、sub_c)を付けます。
 C1の行でそれぞれのサブ・キャッシュ・サーバーが属するネットワークからの
HTTPアクセスを許可し、C2の行でそれら以外のアクセスを拒否しています。


 次に、それぞれのサブ・キャッシュ・サーバーについての設定です。ここでは
「サブB」の設定例を示しますので、他のサブ・サーバーについては以下の設定
例を参考に変更してください。

 A1:  http_port 8080
 A2:  icp_port 3130
   :     :
 B1:  cache_peer 192.168.0.1 parent 3128 3130
 B2:  cache_peer 192.168.1.1 sibling 8080 3130
 B3:  cache_peer 192.168.3.1 sibling 8080 3130
   :     :
 C2:  acl localnet_b src 192.168.2.0/255.255.255.0
   :     :
 D1:  http_access allow localnet_b
 D2:  http_access deny all

 A1の行でHTTPプロトコルが使うポートを「8080」にし、A2の行でICPプロトコル
が使うポートを「3130」にします。
 B1〜3は、負荷分散を行うために隣接するそれぞれのキャッシュ・サーバーの関
係を設定しています。書式は、

  :  cache_peer [ホスト名/IPアドレス] [タイプ] [http_port] [icp_port]

です。
 B1の行はメインに対する設定で、タイプに「parent」を指定します。メインに
はポート番号「3128」でHTTPアクセスをし、「3130」でICPアクセスを行います。
 B2、B3の行は他のサブに対する設定で、タイプに「sibling」を指定します。
サブはポート番号「8080」でHTTPアクセスをし、「3130」でICPアクセスを行い
ます。
 C1の行でサブBが属するネットワークの範囲に「localnet_b」という名前を付
け、D1行でその「localnet_b」からのHTTPアクセスを許可し、D2の行でそれら以
外のアクセスを拒否しています。


 以上で、Squidサーバーの負荷分散を行えるようになります。皆様のネットワー
ク環境に合わせて設定を行ってください。

============================================= ◆1 「Squid」の負荷分散 ==


==========================================================================

 今回で「Squid」は最終回です。LAN内の環境に応じて上手に負荷分散を行えば、
HTTPアクセスでネットワークの混雑を防げるようになるでしょう。
 次回からは、メール・サーバー・ソフト「sendmail」を説明する予定にしてい
ます。

では・・・。

==========================================================================


 =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-=
  ------------------------------------------------------------------
  ◆ メールマガジン登録・解除は、 
  urizin Lab: http://www.urizinlab.jp/ 
  まぐまぐ  : http://www.mag2.com/m/0000097893.htm 
  Pubzine   : http://www.pubzine.com/detail.asp?id=19735 
  Macky     : http://macky.nifty.com/cgi-bin/bndisp.cgi?M-ID=zerolinux 
   melma!    : http://www.melma.com/ (タイトルで検索)
                            で、行えます。
  ------------------------------------------------------------------
  ◆ お問合せは、         info_maga@urizinlab.jp
  ------------------------------------------------------------------
  ◇ このメールマガジンは、
         まぐまぐ           : http://www.mag2.com/ 
         Pubzine            : http://www.pubzine.com/ 
         Macky              : http://macky.nifty.com/ 
         melma!        : http://www.melma.com/ 
                   の配信サービスを利用しています。
  ==================================================================
  ◇ 発行 : urizin Lab   http://www.urizinlab.jp/ 
    ----------------------------------------------------------
    許可無く転載することを禁じます。
    Copyright(C)2002,2003 urizin Lab. All rights reserved.
  ==================================================================
   「ゼロから始めるLinuxサーバー」に出てくる社名、製品名等は各社
     の登録商標または商標です。
  ==================================================================
 =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-= =-=

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2003-03-15  
最終発行日:  
発行周期:金曜日ごろ発行予定  
Score!: - 点   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。