※ 32ビット版
Solaris10はEntire Distribution(全体ディストリビューション)でインストールしておく。
/usr/sfw/bin、/usr/ccs/bin等にコンパイラ、ツール等がインストールされているのでパスを設定
# PATH=/usr/sfw/bin:/usr/ccs/bin:$PATH
# export PATH
ライブラリ検索パスも同様に追加
# crle -c /var/lf/ld.config -l /lib:/usr/lib:/usr/sfw/lib
ソースをダウンロードして来て
# mkdir src
# cd src
# wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE12.tar.gz
ダウンロードしたソースを解凍して
# gunzip -c squid-3.0.STABLE12.tar.gz | tar xf -
Configureして
# cd squid-3.0.STABLE12
# ./configure --prefix=/usr/local
コンパイル&リンクして
# make
インストール
# make install
続けてSquidを動かす準備
(pidファイル、ログ、キャッシュファイルの置き場を作成)
# mkdir -p /usr/local/var/logs
# mkdir -p /usr/local/var/cache
# cd /usr/local/var
# chown nobody logs
# chown nobody cache
SquidをSMF(Solaris10のサービス管理)に登録
ファイルを作成(/var/svc/manifest/network/squid.xml)
内容は以下の通り
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Copyright 2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
ident "@(#)postfix.xml 1.7 04/12/09 SMI"
-->
<service_bundle type='manifest' name='squid'>
<service
name='network/squid'
type='service'
version='1'>
<create_default_instance enabled='false' />
<single_instance />
<dependency name='fs-local'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri
value='svc:/system/filesystem/local' />
</dependency>
<dependency name='net-loopback'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/loopback' />
</dependency>
<dependency name='net-physical'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/physical' />
</dependency>
<dependency name='system-log'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/system/system-log' />
</dependency>
<dependency name='config_data'
grouping='require_all'
restart_on='restart'
type='path'>
<service_fmri
value='file://localhost/usr/local/etc/squid.conf' />
</dependency>
<exec_method
type='method'
name='start'
exec='/usr/local/sbin/squid'
timeout_seconds='60'/>
<exec_method
type='method'
name='stop'
exec='/usr/local/sbin/squid -k shutdown'
timeout_seconds='60' />
<exec_method
type='method'
name='refresh'
exec='/usr/local/sbin/squid -k reconfigure'
timeout_seconds='60' />
<exec_method
type='method'
name='reload'
exec='/usr/local/sbin/squid -k rotate'
timeout_seconds='60' />
<property_group name='startd'
type='framework'>
<!-- sub-process core dumps shouldn't restart session -->
<propval name='ignore_error'
type='astring' value='core,signal' />
</property_group>
<property_group name='general' type='framework'>
<!-- to start stop squid -->
<propval name='action_authorization' type='astring'
value='solaris.smf.manage.squid' />
</property_group>
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'>
Squid Web Proxy Server
</loctext>
</common_name>
<documentation>
<manpage title='squid' section='1M' manpath='/usr/share/man' />
</documentation>
</template>
</service>
</service_bundle>
xmllintで文法をチェック
# xmllint --valid --noout /var/svc/manifest/network/squid.xml
svccfgで文法をチェック
# svccfg -v validate /var/svc/manifest/network/squid.xml
svccfgにインポート
# svccfg import /var/svc/manifest/network/squid.xml
Squidのキャッシュファイルを作成
# /usr/local/sbin/squid -z
Squid3.0の素の設定だとイマイチ不安があるため設定を変更
(vi /usr/local/etc/squid.conf)
まず、自ホスト名を登録
visible_hostname my_proxy_host.mydomainアクセスログを記録する設定とログローテートの設定を追記
access_log /usr/local/var/logs/access.log combinedローカル環境でWeb閲覧後に他のページを参照した場合、リファラとして自サイトの情報が残るため、その場合はリファラを送信しないように以下を追加
cache_log /usr/local/var/logs/cache.log
cache_store_log /usr/local/var/logs/store.log
logfile_rotate 100
acl local_ref referer_regex ^http://192\.168\. ^http://myhost.mydomain不要な情報は外部に送信しないように設定
request_header_access Referer deny local_ref
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
でSMFから起動する
# svcadm enable squid
起動したか確認(起動した例)
# svcs squid
STATE STIME FMRI
online 10:58:38 svc:/network/squid:default
起動したか確認(起動していない例)
# svcs squid
STATE STIME FMRI
maintenance 10:58:38 svc:/network/squid:default
起動していない場合は原因を確認。
# svcs -xv squid
svc:/network/squid:default (Squid Web Proxy Server)
状態: 2009年05月10日 10時58分38秒 以降disabledです
原因: 管理者が使用不可にしました。
参照: http://sun.com/msg/SMF-8000-05
参照: man -M /usr/share/man -s 1M squid
参照: /var/svc/log/network-squid:default.log
影響: このサービスは動作していません。
あとは従来通り・・・というか、Solaris9までと変わらないと思いますが、
/var/adm/messagesログや、ps -ef | grep squid等でプロセスの状態を確認するなり
して動作を確認します。
コメント