/ 2008-08-28 14:37:40 / 个人分类:Linux
准备:
下载squid-3.0.STABLE7.tar.bz2
调整内核
echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range //临时端口范围
一、squid安装
1. 开始编译之前 空间社区门户9H7@8d-Mw,Rm"R
运行Squid的最好方法是创建一个特定的用户和组来运行它。
#groupadd squid
#useradd -g squid squid
#id squid
uid=501(squid) gid=502(squid) groups=502(squid)
设置用户squid的home目录为/usr/local/squid。
#mkdir /usr/local/squid
#chown -R squid:squid /usr/local/squid
#chmod -R 775 /usr/local/squid
切换到squid用户下
#su – squid
下载Squid源文件到/usr/local/squid/并解包。
$cp squid-3.0.STABLE7.tar.bz2 /usr/local/squid/
$cd /usr/local/squid
$bunzip2 squid-3.0.STABLE7.tar.bz2
$tar -vxf squid-3.0.STABLE7.tar
$cd squid-3.0.STABLE7
出于安全方面的考虑,切记不要以root方式安装和运行squid。
2. 执行./configure
./configure命令如下:
./configure --enable-arp-acl ––enable-linux-netfilter --enable-linux-tproxy --enable-underscore
make //编译
在编译完后,你需要把程序安装到指定的目录。可能需要超级用户权限来把它们放置到安装目录。所以,请先切换到root:
make install
二、squid.conf文件内容
cat squid.conf|sed '/^\#/d'|sed '/^$/d'这个命令是查看默认的配置文件
三、运行squid
1、配置文件查错
%squid -k parse
假如你看不到输出,配置文件有效。否则会报错。
2、初始化cache目录
%squid -z
假如你想观察这个过程,请使用-X选项:
%squid -zX
3、终端窗口里测试squid
使用-N选项来保持squid在前台运行,-d1选项在标准错误里显示1级别的调试信息。
%squid -N -d1
出现"Ready to serve requests"消息,可用一些HTTP请求来测试squid。另外,可以使用squidclient程序,它随squid发布:
% squidclient
假如它正常工作,squid的主页html文件会在你的终端窗口里滚动。确认squid工作正常后,中断squid进程(例如使用ctrl-c)。
4、正式运行squid
%squid -s
ps ax | grep squid 检查squid进程。Syslog检查日志。
6、启动脚本
vi /etc/rc.d/rc.local
/usr/local/squid/sbin/squid -s
7、停止squid
squid -k shutdown
假如该命令不可用,可以用ps找到squid的进程ID,然后手工杀死squid。例如:
%ps ax |grep squid
假如你看到不止一个squid进程,请杀死以(squid)显示的那个。例如:
% ps ax | grep squid
294 ?? Is 0:00.01 squid -sD
296 ?? S 0:00.27 (squid) -sD (squid)
% kill -TERM 296
8、重配置运行中的squid进程
使用squid -k reconfigure命令
在squid运行时,某些指令和和选项不能改变,包括:
删除cache目录(cache_dir指令)
改变store_log指令
改变coss cache_dir的块大小数值。事实上,无论何时改变了该值,必须重新初始化coss cache_dir.
coredump_dir指令在重配置过程中不被检查。所以,在squid已经启动了后,不能让squid改变它的当前目录。
9、滚动日志文件
为了合理控制磁盘空间消耗,在cron里使用如下命令:
crontab –e
或直接编辑文件/etc/crontab
添加一行:(如下任务接口在每天的早上4点滚动日志)
0 4 * * * /usr/local/squid/sbin/squid -k rotate