Linux架设代理服务器(1)6.OPTIONS FOR TUNING THE CACHE (调整cache的选项) 7.TIMEOUTS (超时) 8.ACCESS CONTROLS (访问控制) 9.ADMINISTRATIVE PARAMETERS (管理参数) 10.OPTIONS FOR THE CACHE REGISTRATION SERVICE (cache注册服务选项) 11.HTTPD-ACCELERATOR OPTIONS (HTTPD加速选项) 12.MISCELLANEOUS (杂项) 13.DELAY POOL PARAMETERS (延时池参数) 虽然squid的配置文件很庞大,但是如果你只是为一个中小型网络提供代理服务,并且只准备使用一台服务器,那么,你只需要修改配置文件中的几个选项。这些几个常用选项分别是: 1.http_port 说明:定义squid监听HTTP客户连接请求的端口。缺省是3128,如果使用HTTPD加速模式 则为80。你可以指定多个端口,但是所有指定的端口都必须在一条命令行上。 2.cache_mem (bytes) 说明:该选项用于指定squid可以使用的内存的理想值。这部分内存被用来存储以下对象 : In-Transit objects (传入的对象) Hot Objects (热对象,即用户常访问的对象) Negative-Cached objects (消极存储的对象) 需要注意的是,这并没有指明squid所使用的内存一定不能超过该值,其实,该选项只 定义了squid所使用的内存的一个方面,squid还在其他方面使用内存。所以squid实际 使用的内存可能超过该值。缺省值为8MB。 3.cache_dir Directory-Name Mbytes Level-1 Level2 说明:指定squid用来存储对象的交换空间的大小及其目录结构。可以用多个cache_dir命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘分区。"directory "指明了该交换空间的顶级目录。如果你想用整个磁盘来作为交换空间,那么你可以把该目录作为装载点把整个磁盘mount上去。缺省值为/var/spool/squid。“Mbytes”定义了可用的空间总量。需要注意的是,squid进程必须拥有对该目录的读写权力。“Level-1”是可以在该顶级目录下建立的第一级子目录的数目,缺省值为16。同理,“Level-2”是可以建立的第二级子目录的数目,缺省值为256。为什么要定义这么多子目录呢?这是因为如果子目录太少,则存储在一个子目录下的文件数目把大大增加,这也会导致系统寻找某一个文件的时间大大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数量,我们必须增加所使用的目录的数量。如果仅仅使用一级子目录则顶级目录下的子目录数目太大了,所以我们使用两级子目录结构。 那么,怎么来确定你的系统所需要的子目录数目呢?我们可以用下面的公式来估算。 已知量: DS = 可用交换空间总量(单位KB)/ 交换空间数目 OS = 平均每个对象的大小= 20k NO = 平均每个二级子目录所存储的对象数目 = 256 未知量: L1 = 一级子目录的数量 L2 = 二级子目录的数量 计算公式: L1 x L2 = DS / OS / NO 注意这是个不定方程,可以有多个解。 4.acl 说明:定义访问控制列表。 定义语法为: acl aclname acltype string1 ... acl aclname acltype "file" ... 当使用文件时,该文件的格式为每行包含一个条目。 acltype 可以是 src dst srcdomain dstdomain url_pattern urlpath_pattern time port proto method browser user 中的一种。 分别说明如下: 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 foo.com ... squid把根据客户ip反向查询DNS。 dstdomain 指明请求服务器所属的域。语法为: acl aclname dstdomain foo.com ... 由客户请求的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" 来避免安全性隐患。 4.2 应用实例 假想情景:某公司用squid作代理服务器,该代理服务器配置为PII450/256M/8.4G,公司所用ip段为1.2.3.0/24,并且想用8080作为代理端口。 则相应的squid配置选项为: 1.http_port http_port 8080 2.cache_mem 思路:由于该服务器只提供代理服务,所以该值可以尽量设得大一些。 cache_mem 194M 3.cache_dir Directory-Name Mbytes Level-1 Level2 思路:硬盘为8.4G的,在安装系统时应该做好规划,为不同的文件系统划分可用空间。在本例中,我们可以这样来划分: /cache1 3.5G /cache2 3.5G 上一篇: 用Linux建立局域网服务器 下一篇: Linux架设代理服务器(2) 更多相关文章
|
推荐文章
精彩文章
|