squidインストール

会社でOCNエコノミーとかを利用してLinuxマシンをゲートウェイとして使う場合、10数台から使うとなるとなるとかなりの帯域幅を消費する。そこで頻繁にみにいくWebページをLinuxにキャッシングさせておくことで多少なりとも外向きのトラフィックを減らすことができる。
そんな時使うのがキャッシュサーバ(プロキシサーバ)である"squid"です。私の会社ではこれを使っています。とくにインプレスのページとかやたら画像が多いページでは効果てきめんである。以下はインストール記録です。

  1. コンパイル&インストール

    ソースをばらしたディレクトリ直下でやる
    ●squid2.3系
    $./configure \
    --prefix=/var/spool/squid	;squidのインストール先
    --enable-err-language=Japanese;エラーメッセージを日本語で表示
    --enable-dlmalloc		;#dlmalloc.cをリンク
    --disable-wccp		;ciscoのwccpは要らない
    --enable-kill-parent-hack	;
    --disable-ident-lookups	;ident-lookupは使わない
    --enable-heap-replacement	;GDSFアルゴリズムを使用する為に必要
    
    ●squid2.6系
    $./configure \
    --prefix=/usr/local 	; /usr/localをインストール先の起点とする
    --sysconfdir=/etc/squid ; /etc/squidにsquid.confを格納する
    --disable-wccp 		; ciscoのwccpは要らない
    --disable-wccpv2		; 同wccp v2も要らない
    --enable-kill-parent-hack ;
    --disable-ident-lookups ;
    --enable-heap-replacement ;
    --disable-htcp			; htcpは要らない
    --disable-snmp			; snmpも要らない
    --enable-storeio=coss,ufs,aufs,null ; squid2.6系の目玉であるcossを使う
    
    $make
    $su
    #make install ;インストール(この場合は/var/spool/squid配下)
    

  2. squid.confの作成

    squid.confというのがsquidの設定ファイルになる。これに各種設定を記述するわけだが、とりあえず以下のような項目を設定すればよいと思う。詳細はマニュアルを読んでください。なおアクセスリストの設定だけはしっかりしておかないと外部から踏み台にされる恐れがある。なおこれは簡易設定と思ってください。
    実際の環境により最適値は変化します。パフォーマンスtuneは試行錯誤する必要あり。

    ●squid2.3/2.6系共通

    ●squid2.6

  3. キャッシュディレクトリの作成など

    #cd /var/spool/squid
    #mkdir cache
    #chown nobody cache logs
    #chgrp nogroup cache logs
    #./bin/squid -z		;cache初期化
    

  4. 起動スクリプトの作成

    下記の様なスクリプトを/etc/rc.d/配下に作成。chmod 755も忘れずに。
    #!/bin/sh
    
    PREFIX=/var/spool/squid
    LOCKD=/var/run
    
    case "$1" in
            start)
            # Start daemons.
            echo -n "Starting squid object cache: "
            $PREFIX/bin/squid -sD >> $PREFIX/squid.out 2>&1 &
            echo
            ;;
            stop)
            echo -n "Shutting down squid object cache: "
            $PREFIX/bin/squid -k shutdown
            echo ""
            ;;
            restart)
            echo -n "Restart squid object cache: "
            $PREFIX/bin/squid -k reconfigure
            echo
            ;;
            *)
            echo "Usage: rc.squid {start|stop|restart}"
            exit 1
    esac
    exit 0
    

  5. 起動!

    /etc/rc.d/rc.squid start


もどる