注:如果有条件的话还是先将fetch替换为wget(fetch的下载速度实在太慢了。)
安装freebsd 9.0就不说了,先下载squid3.0

1.下载&安装
#wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
#tar zxvf squid-3.0.STABLE25.tar.gz //稳定版
#cd squid-3.0.STABLE25
#./configure --prefix=/usr/local/squid \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-pthreads \
--enable-err-language="Simplify_Chinese" \
--enable-default-err-language="Simplify_Chinese" \
--enable-underscores \
--disable-internal-dns \
--enable-pf-transparent \
--enable-referer-log
#make
#make install
2.squid初始化
#pw groupadd squid
#pw useradd squid -g squid -s

#mkdir /usr/local/squid/var/cache

#mkdir /usr/local/squid/var/logs

#chown -R squid:squid /usr/local/squid/var/cache //默认nobody运行

#chown -R squid:squid /usr/local/squid/var/logs

#squid -z //先不用初始化cache目录 #squid -zX 可查看初始化过程
在etc/hosts中加入被代理服务器域名的内部dns解析(加入要代理的网站是www.test.com)
192.168.1.65 www.test.com
3.配置squid.conf(/usr/local/squid/etc/squid.conf)
#vim /usr/local/squid/etc/squid.conf
直接光标定位到最后开始添加squid的配置文件
visible_hostname cache.test.com //此squid的主机名
cache_mgr [email protected] //此主机squid的管理员邮箱
http_port 192.168.1.222:80 vhost vport  //192.168.1.222:80为本机ip地址与访问端口
cache_mem 256 MB //squid使用共享内存大小,一般设置为内存1/3左右
maximum_object_size_in_memory 2 MB  //单个文件在内存中最大缓存大小
memory_replacement_policy lru  //控制了squid的磁盘cache的置换策略(例如响应时间,命中率,字节命中率等)lru叫做“最近不常用的单元”unit一般就是常说object, 也就是当 cache 中的内容比内存或硬盘达到上限时就需要进行数据的换进和换出工作
cache_dir ufs /usr/local/squid/var/cache 512 16 256  //设置缓存目录512Mb,其中一级目录16个,二级256个
max_open_disk_fds 0  //允许最大打开文件数量,0 无限制
cache_swap_low 80  //配合cache_mem使用,当达到百分之97后,就把旧的内容替换直到降到百分之80
cache_swap_high 97
error_directory /usr/local/squid/share/errors/Simplify_Chinese //错误信息目录
minimum_object_size 0 KB  //单个文件最小缓存大小
maximum_object_size 30 MB  //单个文件最大缓存大小
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh  //日志格式,可以自己组装  参考:地址
#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh 
access_log /usr/local/squid/var/logs/page_zs_access_log combined  //squid请求日志
pid_filename /usr/local/squid/var/logs/squid.pid //squid进程pid路径
cache_log /usr/local/squid/var/logs/cache.log  //squid启动和调试等信息,自身log
cache_store_log none  //squid缓存日志,这里禁掉了(请求响应的细化记录,data,last-modified,expires头部值)
cache_peer 192.168.1.222 parent 80 0 no-query no-digest originserver name=test  //被代理的web服务器ip及web端口,name为别名
cache_peer_domain test www.test.com //对应被代理的网站主机头(如有多个网站此配置多写几个即可)
http_access allow all  //允许客户端所有请求(这里可以设置拦截url,格式如下面两行缓存设置)
acl QUERY urlpath_regex .php .jsp .asp .pl .cgi //设置不缓存url类型(空格隔开)
cache deny QUERY //应用规则
cache_effective_user squid  //squid对应系统管理用户
cache_effective_group squid  //squid对应系统管理组
acl mypurge src 127.0.0.1  // PURGE 是另一个特殊的请求方法,Squid专有,不准许你RFC;可以让管理员强制刷新缓存,我这里限制只有在本地才能更新缓存
acl Purge method PURGE
http_access allow mypurge Purge
http_access deny Purge
httpd_suppress_version_string off //隐藏squid的版本号

4.启动
都配置完了后执行
#/usr/local/squid/sbin/squid –z  //初始化cache目录
#/usr/local/squid/sbin/squid  //启动squid
#/usr/local/squid/sbin/squid -k shutdown  //停止squid
如启动失败出现此错误(FATAL: commonUfsDirOpenSwapLog: Failed to open swap log.)
请在squid.conf中添加
cache_swap_log /var/log/squid/swap.log squid  保存退出并执行
# mkdir /var/log/squid
# chown -R squid:squid /var/log/squid   之后在重新启动即可
如上还不能正常启动请检查squid.conf
# /usr/local/squid/sbin/squid -k parse //修正错误即可
然后在启动,如果有到 ready to server reques,恭喜,启动成功
以上在freebsd 9.0中squid 3.0已经安装完毕,接下来就自由发挥吧
如有问题请留言,因为我是新手,能帮到就尽量回答:)

参考连接:
1/2/3/4/5/6