1.squidの運用
●プロキシサーバ
代表的なHTTPプロキシサーバとしてはsquidが有名です。WWWクライアントとHTTPによって通信し、WWWクライアントに代わって実際のサーバと通信します。ただし、squidはクライアントとはHTTPでの通信をしますが、HTTPだけを理解するのではなくFTP、SSL、SOCKSといったサーバとの通信も代行できます。
また、SMTPサーバの動作を理解していればわかりますが、全てのSMTPサーバ(MTA)はユーザからの依頼を受けてメールを転送するSMTPプロキシといえます。
●WebブラウザとWWWサーバの通信
多くの場合、IEなどのブラウザではアドレスに"http://〜"のように入力してWebページにアクセスしますが、この"http://"というのはHTTPプロトコルを使用するということを表しています。実際にHTTPでどのようなやり取りが行われているかtelnetを利用して見てみましょう。実際には以下のように文字によるやり取りが行われています。5行目の"GET"はサーバにファイル転送を要求するためのHTTPでの命令です。そして、7行目の"HTTP/1.1
200 OK"から最後から2行目の" </html>"までが、サーバからクライアントへ送信する文字列になります。
# telnet webserverのアドレス 80
Trying webserverのアドレス...
Connected to webserverのアドレス.
Escape character is '^]'.
GET /index.html HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 13 Sep 2002 05:37:28 GMT
Server: Apache/1.3.26 (Unix)
Content-Location: index.html.en
・・・【略】・・・
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page for Apache Installation</title>
</head>
<!-- Background white, links blue (unvisited),
navy (visited), red
(active) -->
<body bgcolor="#FFFFFF" text="#000000"
link="#0000FF"
・・・【略】・・・
</body>
</html>
Connection closed by foreign host.
|
●HTTPプロキシ (squid)
●squidを経由した通信
squidはクライアントとの通信には全てHTTPを使用します。ブラウザはFTPなどに対応しており、"ftp://〜"といったアドレスを入力すればFTPサーバと通信できますが、FTPプロキシとしてsquidを利用する場合、ブラウザはsquidとはHTTPで通信し、squidとFTPサーバの間の通信はFTPを使って行われます。

●squid利用するメリット
HTTPプロキシsquidは以下の点でメリットがあります。
| メリット |
説明 |
| アクセス速度の向上 |
WWWクライアントのHTTPリクエストを代行し、一度アクセスしたWebページをサーバ上に保存します。その後、他のクライアントが同じWebページを要求する場合は、実際のサーバにアクセスすること無しに、ページのデータをクライアントに返すことができます。 |
| 管理上のメリット |
全てのWebアクセスがProxyサーバを通るため、Proxyサーバでトラフィックの集中管理が可能 |
|
但し、通信を代行するプロキシをインターネット上どこからでも利用できるようにしていると、クラッカーに踏み台として利用されてしまいます。
●squidの連携
squidは他のサーバと連携することで、よりキャッシュのヒット効率を高め、トラフィックを抑えることができます。squidはICP(3130/UDP)というプロトコルを利用して、他のsquidサーバとキャッシュが存在するかどうかの通信をします。連携の仕方はsibling(兄弟:並列関係)、parent(親:親子関係)があります。
siblingでの連携設定をすると、プロキシサーバはクライアントからリクエストされたページが自分のキャッシュに存在しない場合、連携する別のプロキシサーバにキャッシュを持っているか問い合わせを出します。もし、そのプロキシサーバがキャッシュを持っていないという応答を返した場合は、実サーバへ接続し、対象ページを要求します。

parentでの連携の場合、キャッシュの有無の問い合わせを連携サーバにするところまでは同じですが、キャッシュが無かった場合は親に当たるプロキシサーバが実サーバへ接続し、対象ページを要求します。

>>次のページへ
|