热门关键字:  ubuntu  分区  linux系统进程  函数  Fedora

Squid Proxy server 架站简易说明

来源: 作者: 时间:2008-03-04 Tag: 点击:
本文件最近修正修改部份导引 ...... (详细说明参考文件内容)

Squid 2.3 Stable1 版本安装修正说明 (1/18)

./configure 时以 --enable-async-io=40 设定 THREAD 数量

squid.conf 档中之 cache_dir 要加入 file system 之 type ( 如 asyncufs )



零、选购硬体:

请参考 Squid 作者建议的配备 以及 中山Proxy配备

壹、取回程式原始档:

http://ftp.nsysu.edu.tw/Unix/Proxy/squid

安装前,请注意应先确认原来是否有以 rpm 安装 squid ,查询方法如下:

rpm -qa | grep 'squid'

再依查询到的 版本 加以移除 ,指令如下:

rpm -e squid-2.2.3-1

确定完全移除 squid 的版本後,再进行新的安装。

 

贰、解开并编译:

( 请注意 应先确认

 

zcat squid-2.3.STABLE1-src.tar.gz | tar xf -

或 ( gunzip squid-2.3.STABLE1-src.tar.gz
tar xf squid-2.3.STABLE1-src.tar )

cd squid-2.3.STABLE1

修改, 增加 Thread 数 ( 在 squid-2.2.STABLE5 下的 src/aiops.c ) (此设定 2.3 版不适用)

#define NUMTHREADS 160

(预设值只有 16,绝对不够用, 效果很好哦!! )

编译程式 (./configure) (如果是重新编译程式,可以先下 make clean 以清除先前之程式)

./configure --prefix=/home/squid --enable-dlmalloc --enable-gnuregex
--enable-icmp --enable-cachemgr-hostname="proxy.nsysu.edu.tw"
--enable-cache-digests --enable-poll --enable-async-io=40
--enable-err-language="Traditional_Chinese"
--enable-snmp
(以上指令连打,参数说明如下)

(P.S. proxy.nsysu.edu.tw 请代换成您的 proxy hostname)

(--enable-dlmalloc 记忆体控制函数 可省 )
(--enable-gnuregex 字串比对函数 可省 )
(--enable-icmp 会先 ping alive 可省 )
(--enable-async-io=40 使用 multi-thread 功能 (双 CPU 者强烈建议使用)
     ( 2.3 版修正设定 Thread 之数量,如果 RAM 256 MB 建议设 40 )

(--enable-err-language="Traditional_Chinese" 为安装 中文化之讯息提示)
(--enable-snmp 为安装 snmp 网管功能,用於 mrtg 之统计功能,可省略)

make

make install

make install-pinger (可让proxy去ping其他台)


参、设定与执行:

cd /home/squid/etc

vi squid.conf

(请参考 中山大学 squid.conf 或

福康国小 squid.conf [请参考档头 引用说明]

IBM 5000 proxy 参考 squid.conf (Squid 2.2 版)
IBM 5000 proxy 参考 squid.conf (Squid 2.3 版)

参考档下载後,改档名为 squid.conf 档即可 )

( 请注意档头的 修改日期及修改设定说明。)

( cache_dir & store_objects_per_bucket 简算法,请参考 )

( 相关设定尚有未研究妥当的,请自行研究,有新发现,请记得要告诉我!! )

squid.conf 设定档,各版修正改变之设定

squid.2.3.stable1

cache_dir asyncufs /home/squid/cache/11 2914 64 64

cache_dir 要加上 type,通常以 ufs , 但如果有启动 --enable-asyncufs-io ,

可以 asyncufs 作为 type 之格式。

 

cd /home/squid

新建 cache, logs/swap 等目录

( mkdir cache , 依 squid.conf 中设定目录)

把 cache, logs, logs/swap 等需要被 squid server 写入更改的目录 owner 改成 nobody 这个使用者。( 指令如下: )

chown nobody.nobody /home/squid/cache -R
(如果 cache 目录下还有其他的目录,也要注意)
chown nobody.nobody /home/squid/logs -R
chown nobody.nobody /home/squid/logs/swap -R

执行 /home/squid/bin/squid z 建立 cache storage 目录结构
(这只有在第一次才做,每做一次就等於重整所有 cache)。

确认所有目录的 owner 都正确。 ( ls -la 可以看得到 )

执行 /home/squid/bin/RunCache &
( 查看 squid.out 及 logs 目录下的 cache.log 中是否正常启动 )

修改开机批次档,
将 /home/squid/bin/RunCache & 加进开机自动执行的程序中。

( 因为第一次是以 root 身份启动,所以,/home/squid/squid.out 及 /home/squid/squid.pid 的拥有者是 root ,这会造成下列以 nobody 身份启动 squid 时,会有错误出现,所以,必须在第二次由 rc.local 启动前,先行将 squid.out 及 squid.pid 两个档的拥有者(owner)改为 nobody,即是

chown nobody.nobody /home/squid/squid.out
chown nobody.nobody /home/squid/squid.pid

)

(Linux RedHat): 在 /etc/rc.d/rc.local 中加入

      su nobody -c "/home/squid/bin/RunCache &"

( 以 nobody 启动,以防 root 的身份会有对 系统不当的不预期伤害 !! )

最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册