Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->服务器 ->正文

Linux架设代理服务器(1)

来源:linuxdby.com 作者:Webmaster 时间:2007-04-12 点击: [收藏] [投稿]

  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)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号