キャッシュサーバ
フリーで利用できる最も代表的なWWWプロキシサーバにCernのhttpdがあります。しかし、Cern Proxy WWWサーバはキャッシング機能が弱いため、サーバダウンのトラブルも多いようです(Apache httpdは評価が必要)。WWWのキャッシング専用プロトコルを装備したプロキシを請け負うためのソフトウェアには、CachedやSquidがあります。Cachedはコロラド大学のHarvestプロジェクトで開発されたプログラムで、WWW httpdのアクセラレータにもなります。Harvest Cachedはバージョン2.0から商用化されました。もう1つのSquidはNLANR (National Laboratory for Applied Network Research)がHarvest Cachedを改良し、開発したものです。
なお、Harvest CacheとHttpdアクセラレータの技術内容については下記のURLが参照できます。
Cachedの特徴
プロキシサーバ専用に開発されたため、高速なアクセスとキャッシング機能を持っています。 FTP は外部プログラムにより実行されます。 ネットワークに分散配置されたキャッシュサーバをキャッシュアクセス専用のプロトコルで接続し、1つのキャッシュシステムに見せることができます。 DNSデータのキャッシングです。 キャッシュ用ディスクを複数のパーティション(ディスク)に分けられます。
Squid Cached
インストール
Squidは下記から入手できます。Squidを入手したらファイルを展開し、configureを実行します。すると、諸設定およびMakefileが自動的に作成されます。そして、make all、make installを行ない、インストールします。
% ./configure --prefix=/usr/local/squid % make all % make install設定
Squid Cachedの設定はsquid.confにより行ないます。
- http_port
- HTTPクライアントを受け付けるTCP ポート番号を指定します。デフォルトは3128です。
- icp_port
- 隣接CachedからのICPを受け付ける UDP ポート番号を指定します。デフォルトは3130です。
- tcp_incoming_address
- クライアントや他のキャッシュからHTTP接続を受け付けるアドレスを記述します。
- tcp_outgoing_address
- 接続できるサーバや他のキャッシュのアドレスを記述します。
- udp_incoming_address
- 他のキャッシュサーバからICPを受ける付けるアドレスを記述します。
- udp_outgoing_address
- 他のキャッシュサーバへICPを送信できるアドレスを記述します。
- cache_host
- キャッシュホストを指定します。
hostname キャッシュホスト名です。 type キャッシュのタイプです(parentあるいはneighbor)。 proxy_port Proxy用のHTTPポート番号です。 icp_port キャッシュオブジェクトについて問い合わせを行うICPのポート番号で、ICPを受け付けない場合はechoポート(7)を利用します。 options 「proxy-only」はこのホストがローカルにキャッシュを保持していないことを意味し、「weight=n」はneighborに対する重要度を指定します。数字が大きいほど優先されます(初期設定は1)。
- cache_swap
- キャッシュのディスク容量を指定します。
- cache_dir
- キャッシュ用ディレクトリを指定し、複数のパーティションにわける場合は複数行を指定します。cache_dir行は100行までが記述でき、それぞれ1GB のキャッシュを持つディスクなら次のとおりです。(全部で4GB)
cache_dir /var/www_cache1 cache_dir /var/www_cache2 cache_dir /var/www_cache3 cache_dir /var/www_cache3- http_stop, gopher_stop, ftp_stop
- キャッシュを行なわないURLを指定します。
http_stop http://www.yokochin.com/- acl, http_access
- アクセス制御を指定します。
192.178.1.0〜192.168.3.255までのアクセスを許す場合、以下のように記述します。
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl foo src 192.178.1.0/24 192.178.2.0/24 192.178.3.0/24 acl SSL_ports port 443 563 acl connext method connect # http_access deny manager !localhost !kdd http_access deny connect !SSL_ports # http_access allow foo # Reply to all ICP queries we receive icp_access allow yok- ttl_pattern
- 保存する期間を決定します。
起動
# /usr/local/squid/bin/squid &もしくは、
# /usr/local/squid/bin/RunCache &