08Linux代理服务器(4)
发布时间:2021-06-07
发布时间:2021-06-07
Linux代理服务器
下面我们来看一看s quid.conf文件的结构以及一些常用的选项。s quid.conf配置文件可以分为十三个部分,这十三个部分分别是:1) NETWORK OPTIONS (有关的网络选项)。
2) OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM (作用于邻居选择算法的有关选项)。
3) OPTIONS WHICH AFFECT THE CACHE SIZE (定义c ache大小的选项)。
4) LOGFILE PATHNAMES AND CACHE DIRECTORIES (定义日志文件的路径及c ache的目录)。
5) OPTIONS FOR EXTERNAL SUPPORT PROGRAMS (外部支持程序选项)。6) OPTIONS FOR TUNING THE CACHE (调整c ache的选项)。7) TIMEOUTS(超时)。
8) ACCESS CONTROLS (访问控制)。
9) ADMINISTRATIVE PARAMETERS (管理参数)。
10) OPTIONS FOR THE CACHE REGISTRATION SERVICE (c ache注册服务选项)。11) HTTPD-ACCELERATOR OPTIONS (H TTPD加速选项)。12) MISCELLANEOUS (杂项)。
13) DELAY POOL PARAMETERS (延时池参数)。
虽然s quid的配置文件很庞大,但是如果你只是为一个中小型网络提供代理服务,并且只准备使用一台服务器,那么,只需要修改配置文件中的几个选项。这些几个常用选项分别是:
1. http_port
定义s quid监听H TTP客户连接请求的端口。默认是3 128,如果使用H TTPD加速模式,则为8 0。可以指定多个端口,但是所有指定的端口都必须在一条命令行上。
2. cache_mem (bytes)
该选项用于指定s quid可以使用的内存的理想值。这部分内存被用来存储以下对象: In-Transit objects (传入的对象)。
Hot Objects (热对象,即用户常访问的对象)。 Negative-Cached objects (消极存储的对象)。
需要注意的是,这并没有指明s quid所使用的内存一定不能超过该值,其实,该选项只定义了s quid所使用的内存的一个方面,s quid还在其他方面使用内存。所以s quid实际使用的内存可能超过该值。默认值为8 MB。
3. cache_dir Directory-Name Mbytes Level-1 Level2
指定s quid用来存储对象的交换空间的大小及其目录结构。可以用多个c ache_dir命令来定义多个交换空间,并且这些交换空间可以分布在不同的磁盘分区。"directory "指明了该交换空间的顶级目录。如果想用整个磁盘来作为交换空间,那么可以将该目录作为装载点将整个磁盘挂装上去。默认值为/ var/spool/squid。M bytes定义了可用的空间总量。需要注意的是,s quid进程必须拥有对该目录的读写权力。L evel-1是可以在该顶级目录下建立的第一级子目录的数目,默认值为1 6。同理,L evel-2是可以建立的第二级子目录的数目,默认值为2 56。为什么要定义这么多
Linux代理服务器
子目录呢?因为如果子目录太少,则存储在一个子目录下的文件数目将大大增加,这会导致系统寻找某一个文件的时间大大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数量,必须增加所使用的目录的数量。如果仅仅使用一级子目录,则顶级目录下的子目录数目太大了,所以使用两级子目录结构。
那么,怎么来确定系统所需要的子目录数目呢?可以用下面的公式来估算。已知量:
DS = 可用交换空间总量(单位K B)/ 交换空间数目OS = 平均每个对象的大小= 20k
NO = 平均每个二级子目录所存储的对象数目= 256未知量:
L1 = 一级子目录的数量L2 = 二级子目录的数量计算公式:
L1xL2 = 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 methodbrowser 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 ... squid将根据客户ip反向查询DNS
dstdomain 指明请求服务器所属的域。语法为:
acl aclname dstdomain ... 由客户请求的URL决定
注意,如果用户使用服务器i p而非完整的域名时,s quid将进行反向的D NS解析来确定其完整域名,如果失败,就记录为“n one”。
time 指明访问时间。语法如下:
acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]
day-abbrevs:
Linux代理服务器
S - SundayM - MondayT - TuesdayW - WednesdayH - ThursdayF - FridayA - Saturday
h 1:m1必须小于h 2: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" 来避免安全性隐患。8.4.2 应用实例
假定:某公司用s quid作代理服务器,该代理服务器配置为P II450/256M/8.4G,公司所用i p段为1 .2.3.0/24,并且想用8 080作为代理端口。
则相应的s quid配置选项为: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/var 400Mswap 127M/ 剩余部分
在安装时,我们尽量不安装不必要的包。这样在节约空间的同时可以提高系统的安全性和稳定性。下面我们来计算所需的第一级和第二级子目录数。
下一篇:试验室相关管理制度