admin 管理员组

文章数量: 887021


2024年1月17日发(作者:union force)

Linux1 代理服务器 squid主配置文件

是最核心的配置文件,位于/etc/squid/目录下。squid的主配置文件的内容远比其他服务的主配置文件多得多,大概有4300多行的内容,不过不用担心,因为绝大部分的内容是注释信息,而且注释内容相当丰富,完全可以通过注释来了解squid的功能、语法以及使用。

下面是文件的结构以及一些常用的选项,其可以分为十三个部分,这十三个部分分别是:

 NETWORK OPTIONS 设置与网络相关的选项。如设置监听那些IP地址的哪些端口。

 OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM

作用是设置与邻居选择算法有关的选项。

 OPTIONS WHICH AFFECT THE CACHE SIZE 作用是设置与cache大小有关的选项。如设置内存缓冲区的大小。

 LOGFILE 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加速有关的选项。

 MISCELLANEOUS (相关杂项)

 DELAY POOL PARAMETERS 作用是设置延时池参数。

虽然squid的配置文件很庞大,但是如果只是为一个中小型网络提供代理服务,并且只准备使用一台服务器,那么,只需要修改配置文件中的几个选项。这几个常用选项如下。

1.设置监听的端口号

为squid设置端口号的意思就是告诉squid在那个端口上监听http请求。用户可以使用默认设置,在默认情况下监听的端口号为3218,如果使用HTTPD加速模式则为80。用户可以指定多个端口(所有指定的端口都必须在一行上)。使用http_port字段进行设置,如图11-35所示。

图11-35 默认监听3218端口

另外http_port字段还可以指定监听来自哪些IP的HTTP请求,这种功能经常被使用,当squid代理服务器有两块网卡,一块用于和内网通信,另一块用于和外网通信的时候,用户希望squid只监听来自内网的客户请求,而不监听来自外网的客户请求,在这中情况下,就需要使用IP地址和端口号写在一起的方式,例如,让squid在8080端只口监听内网接口上的请求,可以这样设置http_(内网接口IP地址):8080。

2.内存缓冲区设置

内存缓冲设置是指需要使用多少缓存来作为高速缓存。这个数值相对来说不好设置,因为每台服务器内存的大小和服务器群体都不相同,但有一点是肯定的,缓存设置的越大,对客户端的访问速度就越有利。如果设置的太大就会导致服务器的整体性能的下降,设置太小,那么客户端的访问的速度得不到实质性的提高。在这里,根据服务器提供的功能的多少而定,如果服务器只是作代理服务器,平时只是共享上网用的话,可以把缓存设置为实际内存的一半甚至更多(视内存总容量而定)。如果服务器本身还提供其他而且较多的服务,那么缓存的设置最好不要超过实际内存的三分之一,用户可以使用cache_mem字段来设置内存缓冲区的大小。例如:Cache_mem 512MB

该选项只定义了squid所使用的内存的一个方面,squid还在其它方面使用内存。所以squid实际使用的内存可能超过该值。缺省值为8MB(Cache_mem 8M)。

3.squid磁盘缓存

Cache_dir字段是用来告诉squid以何种方式存储cache文件到磁盘的什么位置。它是主配置文件中最重要的字段之一。该字段是否合理直接影响Squid代理服务器的性能。Cache_dir字段后面跟的参数较多,其格式如下:

Cache_dir 存储机制 目录 目录大小 L1 L2

 存储机制

squid支持许多不同的存储机制。例如ufs、aufs,还有diskd等,默认情况使用的是ufs。

 目录

这里指的是在硬盘上设置的缓存目录,squid会将cache(缓存)文件存放在这个目录下。当客户端访问网站的时候,squid会从自己的缓存目录中查找客户端请求的文件。可以选择任意分区作为硬盘缓存目录,最好选择较大的分区,例如/usr或者/var等.不过更建议使用单独的分区,可以选择闲置的硬盘,将其分区后挂载到/cache目录下,然后再配置文件中添加这样一行 (Cache_dir ufs /cache 1000 256 16)。

 目录大小 该值用来设置缓存目录的容量。

 L1 该值用来设置一级目录的数量。默认值是16。

 L2 该值用来设置二级目录的数量。默认值是256。

定义这些子目录可以加速查找缓存文件的速度,如图11-36所示。

图11-36 一级子目录

这种金字塔形的结构经常容易见到的,合理地建立这些一级和二级子目录的数量对于检索文件的速度有着一定的提高。这和平时在使用电脑为文件分类很类似,例如有专门存放工作资料的文件夹,有专门存放电影的文件夹,也有存放游戏的文件夹等等。不难想象如果所有文件放在一起,查找某个文件的时间会大大增加。squid则采用两级子目录的架构来提高检索缓存文件的速度。L1设置为16,表示设置16个一级子目录,L2设置为256,表示在每一个一级子目录下都有256个二级子目录,L2设置为256表示在每一个一级子目录下都有256个二级子目录,如图11-37所示。

图11-37 二级子目录

4.访问控制列表

访问控制列表格式:acl aclname acltype “文件”

acltype部分类型如表11-2所示。

ACL类型

src

dst

srcdomain

dstdomain

time

port

proto

method

作用

指明源地址

指明目标地址

指明客户所属的域

指明请求服务器所属的域

指明访问时间

指定访问端口

指定使用协议

指定请求方法

表11-2 ACL常用的类型及作用

各个acl示例如下所示:

 src类型示例

acl aclname src ip-address/netmask(客户ip地址)

acl aclname src addr1-addr2/netmask (地址范围)

 dst类型示例 acl aclname dst ip-address/netmask (即客户请求的服务器的ip地址)

 srcdomain类型示例

acl aclname srcdomain squid将根据客户IP反向查询DNS。

 dstdomain类型示例 acl aclname dstdomain 由客户请求的URL决定。

如果用户使用服务器IP而非完整的域名时,squid将进行反向的DNS解析来确定其提 示

完整域名,如果失败就记录为none。

 time语法如下所示:

acl aclname time [day-abbrevs] [h1:m1-h2;m2][hh:mm-hh:mm]

其中day-abbrevs用来指定星期(S-Sunday、M-Monday、T-Tuesday、W-Wednesday、H-Thursday、F-Friday、A-Saturday)

h1:m1 必须小于 h2:m2,表达示为[hh:mm-hh:mm]。

 port类型示例

acl aclname port 80 70 21(指定多个端口)

acl aclname port 0-1024(指定一个端口范围)

 proto类型示例 acl aclname proto HTTP FTP

 method类型示例 acl aclname method GET POST

5.http_access

根据访问控制列表允许或禁止某一类用户访问,如果某个访问没有相符合的项目,则缺省为应用最后一条项目的“非”。比如最后一条为允许,则缺省就是禁止。所以,通常应该把最后的条目设为deny all或allow all来避免安全性隐患。


本文标签: 设置 使用 缓存