How to build Internet Server with Linux

last update: 29 Sep 2004

home |index |previous |next |contents

squidのインストールと運用



squidは高性能なキャッシュ機能を持つプロキシ(Proxy)サーバです。

3.1 ソフトの入手

    3.1.1 tarボール

    2002年5月1日時点での最新安定版である、 "squid-2.4.STABLE6-src.tar.gz"を入手します。例えば以下のサイトから入手できます:
    http://www.squid-cache.org/

    3.1.2 rpmパッケージ

    以下のサイトから、 rpmベースのソースコードパッケージ"squid-2.4.STABLE3-1.7.2.src.rpm" をダウンロードすることができます。
    ftp://ftp.riken.go.jp/pub/Linux/redhat/redhat/linux/updates/7.2/en/os/SRPMS/squid-2.4.STABLE3-1.7.2.src.rpm

3.2 インストール

    3.2.1 tarボールからのインストール

    ファイルを展開するディレクトリ$Workに移動して、バイナリパッケージを展開します。作業ディレクトリ$Workは任意のディレクトリです。 パッケージの展開後、作成されたディレクトリに移動します。
      % cd $Work/
      % gzip -cd squid-2.4.STABLE6-src.tar.gz | tar xvf -
      % cd $Work/squid-2.4.STABLE6

    次に"configure"スクリプトと"make all"を実行します。
    configureに与えるオプションprefixにはsquidの実行ファイルなどをインストールするディレクトリを指定します。
    1. 最も簡単な設定

      configureスクリプトのオプションに"--prefix=/usr/local/squid"を設定すると、 squid関連の全ての設定ファイル、ライブラリ、実行ファイルが"/usr/local/squid" 以下に置かれます。
        % configure --prefix=/usr/local/squid
        % make all

    2. RedHatに準拠した設定
      RedHatはライブラリや設定ファイルの設置に一定のルールを持っています。 以下にRedhatに準拠したファイル設定を以下に示します。
        % configure --exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid
        % make all

      なお、RedHat系ディストリビューションならば、以下の設定を追加しておくとよいでしょう。
      これらの設定は"RedHat"に標準でインストールされるsquidの設定です。
      --enable-poll
      --enable-snmp
      --enable-removal-policies="heap,lru"
      --enable-storeio="aufs,coss,diskd,ufs"
      --enable-delay-pools
      --enable-linux-netfilter
      --enable-carp 
      --with-pthreads
      --enable-auth-modules="LDAP,NCSA,PAM,SMB,MSNT"
           


    次に、rootの権限で"make install"を実行します。
      % su
      % make install

    以上で"squid"のインストールは終了です。

    3.2.2 rpmソースコードパッケージのインストール

    rpmベースのソースコードパッケージ"squid-2.4.STABLE3-1.7.2.src.rpm"を インストールします。
      % rpm -i squid-2.4.STABLE3-1.7.2.src.rpm
      % rpm -bb /usr/src/redhat/SPECS/squid.spec
      % rpm -i /usr/src/redhat/RPMS/i386/squid-2.4.STABLE3-1.7.2.i386.rpm

    以上で"squid"のインストールは終了です。
3.3 コンフィギュレーション

    3.3.1 一般的な設定

    squidが起動時に参照する"squid.conf"ファイルを設定します。
    今回の例では"squid.conf"ファイルはディレクトリ"/etc/squid"にあります。

    ここでディレクトリ"/etc/squid"は、configure実行時に"--sysconfdir"で指定したものです。(configure実行時に"--prefix"のみ設定した場合には、prefixで指定したディレクトリ下のサブディレクトリ"etc"以下にあります。)

    ここではRedHatに準拠した設定を採用することにします。
    オプション 設定値 備考
    cache_dir ufs /var/spool/squid 100 16 256 キャッシュを置くディレクトリ
    cache_access_log /var/log/squid/access.log _
    cache_log /var/log/squid/cache.log _
    cache_store_log /var/log/squid/store.log _
    pid_filename /var/run/squid.pid _
    authenticate_program /usr/bin/ncsa_auth /usr/etc/passwd _
    http_access allow localhost _
    cache_effective_user squid _
    cache_effective_group squid _
    icon_directory /usr/lib/squid/icons _
    ftp_user squid@mydomain.mynet 各自の環境に合わせて設定

    3.3.2 Cacheの階層化

    squidの特徴として、cacheを階層化して一種の分散Cacheを構築できることが挙げられます。

    簡単な例: 親となるsquidサーバと数台の子squidサーバがあり、 ユーザのクライアントマシンから子サーバにアクセスするように設定します。 子サーバはまず自分のCache領域を調べて要求されたデータが存在すればCache領域のデータを返し、 無ければ親サーバにアクセスします。
    いくつかの子サーバがある場合、親サーバが子サーバ同士のキャッシングを行なうことができるので、 サイトのヒット率が向上します。

    ここでは(効果はさておき)、fw.solar.galaxy.jpを親squidサーバ、 mail.solar.galaxy.jpを子squidサーバとして設定する方法を示します。

3.4 運用

    3.4.1 tarボールによるインストールを行った場合

      3.4.1.1 cache領域の確保

      インストール後、起動する前にキャッシュを準備しなければなりません。 以下の手順でキャッシュ領域を確保して下さい。

      この操作はインストール後、一度だけ行ないます。

        % mkdir /var/log/squid/
        % chmod 755 /var/log/squid/
        % chown -R squid:squid /var/log/squid/

        % mkdir /var/spool/squid
        % chmod 755 /var/spool/squid
        % chown -R squid:squid /var/spool/squid
        % /usr/sbin/squid -z -f /etc/squid/squid.conf

      3.4.1.2 起動


      3.4.1.3 停止


    3.4.2 rpmのソースパッケージによるインストールを行った場合

      3.4.2.1 起動

      他のアプリケーションと同様、以下のコマンドを実行することで、squidを起動することができます。

        % /etc/rc.d/init.d/squid start

      マシン起動時にsquidも起動させたい場合には、"ntsysv"コマンドを実行してください。

      3.4.2.2 停止

      他のアプリケーションと同様、以下のコマンドを実行することで、squidを停止することができます。

        % /etc/rc.d/init.d/squid stop

3.5 クライアント側の設定
クライアントで使用するブラウザで"Proxy"の設定を行なって下さい。

home |index |previous |next |contents


since 04/Oct/2004