|
|
对于一个菜鸟如何才能快速正确的安装和配置squid,满足最基本的要求即代理上网和上网加速!理解squid 的基本架构对于快速掌握squid 的最基本的配置才是最重要的!
1.squid的安装
redhat linux9自带了squid软件包.下面以rpm包的安装为例介绍squid 的安装.(建议最初的用户用光盘自带的rpm包安装)
//查看是否安装了squid
#rpm -qa|grep squid
//将redhat linux9的第一张光盘放入光驱后挂装
#mount /mnt/cdrom
//进入光盘的redhat/rpms目录
#cd /mnt/cdrom/redhat/rpms
//安装所需的rpm包
#rpm -ivh squid-2.5.stable1-2.i386.rpm
//弹出光盘
#cd
#umount /mnt/cdrom
或者使用#eject可以自动弹出光驱
2.了解redhat linux 9发布的squid
redhat linux9发布的squid包中的重要文件及其说明
类别 文件 说明
配置相关的文件 /etc/squid/squid.conf squid 主配置文件
/etc/squid/errors 报告错误使用的语言
/etc/squid/mib.txt squid-mib定义文件
/etc/squid/mime.conf 定义mime type
/etc/squid/msntauth.conf msnt认证的配置文件
应用程序和库 /usr/sbin/squid squid 主程序
/usr/sbin/squidclient 统计显示摘要表的客户程序
/usr/lib/squid/cachemgr.cgi 查看squid实时运行情况的cgi脚本
/usr/lib/squid/*_auth squid的各种认证库文件
文档 /usr/share/doc/squid-2.5.statle1 squid的文档根目录
缓存目录 /usr/spool/squid 缓存目录的根
日志相关 /etc/logrotate.d/squid squid的日志滚动配置文件
/var/log/squid/access.log squid的访问日志文件
/var/log/squid/store.log squid缓存对象状态的日志文件
/var/log/squid/cache.log squid缓存状态的日志文件
其中,squid 的主配置文件为/etc/squid/squid.conf,该配置文件包含了大量的配置说明,所以很长,有3224行之多,下面介绍一下/etc/squid/squid.conf文件的结构
squid主配置文件的结构
配置段落 说明
network options 有关网络的选项
options which affect the neighbor
selection algorithm 作用于邻居选择算法的有关选项
options which affect the cache size 定义cache大小的选项
logfiles pathnames and cache directories 定义日志文件的路径和cache的目录
options for external support programs 外部支持程序选项
options for tuning the cache 调整cache的选项
timeouts 定义超时的选项
access controls 访问控制选项
administrative parameters 管理参数选项
options for the cache registration service cache注册服务选项
httpd-accelerator options httpd加速选项
deplay pool parameters 定义延时池参数
3.在安装和理解了squid的结构后,我们就来配置单个缓存代理服务器
a.squid的基本参数配置
虽然squid的配置文件很庞大,但是配置单个缓存代理服务器相对简单,只需要修改配置文件中的几个选项即可.
http_port 定义squid监听http客户请求的端口.默认为3128
cache_mem 用于指定squid可以使用的内存的理想值.(若该机器只是用做代理缓存 服务器,该值可以设置为计算机物理内存的1/3)
cache_dir type directory-name mbytes level1 level2;其中type是指linux使用的缓存系统类型,应该是ufs;directory-name指明了缓存控件的顶极目录;mytes定义缓存空间的总量;level1定义第一层缓冲空间的目录个数,默认是16;level2定义第二层缓冲空间的目录个数,默认是256;
b.配置squid的访问控制列表(acl)
squid支持强大的访问控制功能.通过设置squid的访问控制,可以有效底控制客户是否可以连接到代理服务器,以及控制客户是否能够获得指定的访问资源.为了方便管理,使用acl命令对不同性质的客户进行分类并赋予名称(以不同的aclname标识),然后使用http_access对一类客户(aclname)实施允许或拒绝操作.
配置acl和http_access的语法为:
acl aclname acltype "string1....."
acl aclname acltype "file".....
http_access allow|deny aclname1 aclname2 ...
在定义acl时,可以在acltype后直接书写若干以空格间隔的匹配字符串,也可以在acltype后书写一个用双引号括起来的文件名并在指定的文件中书写以回车间隔的匹配字符串.
在定义acl时,可以使用多种访问控制列表类型(acltype),这里不多介绍,可参考配置文件.
c.配置单个缓存代理服务器举例
//修改主配置文件
#vi /etc/squid/squid.conf
//1.将如下的配置行
#http_port 3128
//改为
http_port 3128 8080
//即:让squid同时监听3128和8080两个端口
//2.将如下的配置行
#cache_men 8mb
//改为
cache_men 92mb
//即:大约使用物理内存的1/3
//3.将如下的配置行前的注释符号去掉
cache_dir ufs /var/spool/squid 100 16 256
//即:在/var/spool/squid目录下使用ufs缓存系统类型作为缓冲目录
//4.在http_access配置断的最后添加如下的访问控制配置
acl myfriends src /etc/squid/acl/myfriends
acl badurl url_regex -i sex
acl proxy_time time MTWHF 7:00-22:00
在/etc/squid/下新建一个文件夹acl,在acl下建立一个文件myfriends,输入允许上网的ip地址或地址段
//拒绝url中含有sex的访问
http_access deny badurl
//允许myfriends文件中的ip地址在工作时间内访问代理服务器
http_access allow myfriends proxy_time
//拒绝其他客户机在工作时间内访问代理服务器
http_access deny proxy_time
//拒绝其他所有连接访问
http_access deny all
4.squid 的初始化和启动
执行如下的操作步骤!
a.对squid进行初始化,创建squid的缓存目录
#squid -z
通常在进行这一步操作的时候,系统会提示一个错误,一个指明的错误导致不能初始化,错误提示的大意是:please set the 'visible_hostname',这个时候要再次编辑/etc/squid/squid.conf文件添上一行:visible_hostname 你的主机名
b.立即启动squid
#service squid start
或者#cd /etc/init.d
#squid
ok,ok,到此为止,你的squid应该可以正常运行了,若希望squid 在下次计算机启动时自动启动,可使用命令:
#ntsysv
选中squid即可!
有不足之处,请大家指点! |
|