2012年(10)
分类: 系统运维
2012-11-05 16:18:54
1 http_port
§ 解释:
§ 定义squid监听客户端http请求的端口。这是一个必须参数,没有缺省值,如果不配置,squid将不能启动。
§ 用法:
§ 语法:
§ http_port port [options]
§ http_port hostname:port [options]
§ http_port ip_address:port [options]
§ 常用参数:
§ port:squid绑定socket的端口,即squid的监听的端口
§ hostname:squid 绑定socket的主机名
§ ip_address:squid 绑定socket的ip地址
§ options参数:
§ accel:加速模式,至少需要配置 vhost/vport/defaultsite 三者之一
§ vhost:用于加速模式, 使用Host头,用于支持虚拟主机
§ vport:用于加速模式, 使用Host头,用于支持虚拟主机,指定的是回源的端口号
§ allow-direct:加速模式,允许直接转发
§ http11:开启squid到客户端的http1.1协议支持
例子:http_port 80 accel vhost vport allow-direct http11
2 https_port
§ 解释:
§ 定义squid监听客户端https请求的端口。
§ 用法:
§ 语法:
§ https_port [ip:]port cert=certificate.pem key=key.pem] [options...]
§ 配置参数:
§ ip:squid绑定socket的ip地址
§ port: squid绑定socket的端口
§ cert=certificate.pem: SSL证书存放的路径
§ key=key.pem :SSL证书密钥存放的路径
例子:https_port 443 cert=/usr/local/squid/etc/lxcvc.com.crt key=/usr/local/squid/etc/lxcvc.com.key accel vhost allow-direct
1 cache_dir
§ 解释:
§ 定义cache目录,包括它的路径、类型和大小。
§ 用法:
§ 语法:
§ cache_dir Type Directory-Name Mbytes L1 L2 [optios]
§ 参数说明:
Type:声明squid使用的存储类型(ufs,aufs,diskd ,coss)
Directory-Name:目录名称是cache交换文件存储的顶级目录
Mbytes:是这个目录的大小(单位为MB)。默认是100MB。
Leve1:一级目录的数目。默认是16
Leve2:每一个一级目录下,二级目录的数目。默认是256。
aufs配置解析:
例子:cache_dir aufs /data/cache1 360000 128 128 min-size=1000000
aufs:文件系统;
/data/cache1:cache目录存放的路径;
360000:cache的大小,默认单位MB,这里360G;
128:1L的目录的个数;
128:2L的目录的个数;
min-size=1000000:指的是存储的最小object,小于该值,则不存到aufs上;默认单位字节
coss配置解析:
例子:cache_dir coss /data/cache2/coss2 64000 max-size=1000000 block-size=4096 membufs=150
coss:文件系统;
/data/cache2/coss2:cache目录存放路径;
64000:cache的大小,默认单位MB;
max-size:存放的最大的object,默认单位字节;大于该设置的值,将不会存储到coss上;
block-size:块的大小。不够该设置的大小,默认占用一个block。
membufs:membufs的大小是指memstripe的数目,memstripe是内存stripe里面的数据不会同步到磁盘,只会丢弃,但可以减轻io 压力。
2 logformat
§ 解释:
§ 指定访问日志在日志文件中存储格式
§ 用法:
§ 语法:
§
logformat
§ 配置参数:
name 指定这个自定义访问日志格式名称
format 是格式规范,由%号隔开的字符串
例子:logformat
squid_custom_log %ts.%03tu %6tr %>a %Ss/%03Hs %
3 access_log
§ 解释:
§ 这个文件中记录所有活动的客户端。使用这种方法,可以分析客户端的访问。
§ 用法:
§
语法:access_log
§ 配置参数:
filepath : 指定访问日志文件的位置
logformat name : 拥有指定日志格式的标示符
acl :过滤规则匹配
例子:access_log /data/proclog/log/squid/access.log squid_custom_log
配置了logformat,然后定义access_log像指定的日志格式一样展示。
4 cache_log
§ 解释:
§ 定义Squid运转状态综合信息的文件路径,文件内容包含Squid的启动和配置信息,以及运行期间的各类错误信息。
§ 用法:
§
语法:cache_log
§ 配置参数:
filepath : 指定Cache日志文件的位置
filename : 实际的Cache日志文件
例子:cache_log /data/proclog/log/squid/cache.log
5 cache_store_log
§ 解释:
§ 这个标签指定了object事务日志的文件,文件包含对象被删除的时间。这个文件在生产高速缓存中不是很常用,建议用在调试环境下。因此,可以将该字段配置为none来关闭它。
§ 用法:
§
语法:cache_store_log
§ 配置参数:
Filepath:声明文件的位置 filename 集合在一块的日志文件。
例子:cache_store_log
/var/log/cache/store.log
cache_store_log none
6 debug_options
§ 解释:
§ 这个配置定义了squid功能模块的日志级别,并且指定功能模块名称,是用数字表示,可以同时指定不同功能模块和不同级别,也可以使用所有的功能同一个级别,一般建议使用ALL,1。
§ 用法:
§ 语法:debug_options section, level
§ 配置参数:
section 功能模块的日志编号
level 定义日志级别
(0-9)
例子:debug_options 14,9 78,9 223,9
debug_options ALL,1
1 refresh_pattern
§ 解释:
§ 在明确源站缺少Expires的情况下,可以采用squid自身的refresh_pattern来实现。
§ 用法:
§ 语法:refresh_pattern [-i] regex min percent max [options]
§ 配置说明:
-i:忽略大小写;
regex:用来匹配url;
min:一个object在缺少明确的Expires的情况下,能够确定的在cache中被认为的新鲜分钟数,小于该值则肯定是新鲜的。
max:一个object在缺少明确的Expires的情况下,在cache中可能被认为的新鲜分钟数的最大值,大于该值则说明肯定是过期的。
percent:一个object在缺少明确的Expires的情况下,它的LM-factor的最大值(LM-factor超过此值则认为过期,否则新鲜)。LM-factor= (当前时间-到达cache的时间) / (到达cache的时间 – Last-Modified) * 100%
Options:
override-expire:squid在检查Expires头部之前,先检查min值
override-lastmod:squid在检查LM-facto百分比之前先检查min值
reload-into-ims:squid在转发一个请求的时候加上If-Modified-Since
ignore-reload:忽略客户端请求头中的no-cache 或 reload头
ignore-no-cache:忽略服务器相应头中的Pragma:
no-cache,Cache-control:
no-cache
ignore-private:忽略服务器响应头中的cache-control:
private
例子:refresh_pattern -i ^http 1440 0% 1440 ignore-reload override-lastmod
2 quick_abort_min / quick_abort_max
§ 解释:
§ 缓存服务器,在缺省情况下继续下载中断的将近完成请求(剩余少于16KB)。这样在网络慢和/或非常忙的高速缓存上是不可取的(如SLIP)。不耐烦的用户可能会占用文件描述符和带宽一直重复的请求和立即终止下载。
§ 用法:
§
语法:quick_abort_min size
quick_abort_max size
§ 配置说明:
size:最小和最大传输大小
机制:当用户中断请求,squid就会检查squid_abort的值,如果此时的传输数据量数据剩余小于min值,则会完成下载; 如果大于max值,就会中断下载。
例子:quick_abort_min -1 KB
quick_abort_max
30 KB
解析:当 quick_abort_max 0 KB quick_abort_min 0 KB时,表示客户端中断之后不想继续任何检索。
当 quick_abort_min -1 KB时,表示检索始终进行。
3 read_ahead_gap
§ 解释:
§ 这个标签决定了发送到客户端预取缓冲区的大小
§ 用法:
§ 语法:read_ahead_gap buffer-size
§ 配置说明:
buffer-size cache缓冲区的大小
例子:read_ahead_gap 30KB
4 negative_ttl
§ 解释:
§ 定义服务器响应的错误页面的缓存时间,默认为5分钟
§ 用法:
§ 语法:negative_ttl time-units
§ 配置说明:
time-units 错误页面缓存的时间
例子: negative_ttl 1 minutes
5 negative_dns_ttl
§ 解释:
§ 定义DNS查询失败情况下的生存时间,默认一分钟
§ 用法:
§ 语法:negative_dns_ttl time-units
§ 配置说明:
time-units 时间
例子:negative_dns_ttl 1 minutes
6 range_offset_limit
§ 解释:
§ 当squid收到一个range的时候,会抓去整个文件,设置一个最大值,超过这个值的请求,squid以range请求回源,不缓存这个请求
§ 用法:
§ 语法:range_offset_limit bytes
§ 配置说明:
7 request_header_max_size
§ 解释:
§ 这个指定请求的HTTP头的最大值。请求头通常相对较小(约512字节)。
§ 用法:
§ 语法:request_header_max_size size(KB)
§ 配置说明:
size 请求头的最大大小
例子:request_header_max_size 100 KB
8 request_body_max_size
§ 解释:
§ 这个值是指定客户端PUT/POST请求的最大值。用户发送请求超过这个限制的值,会收到“Invalid Request”错误消息。如果将此参数设置为一个零(默认),将没有限制。
§ 用法:
§ 语法:request_body_max_size size(KB)
§ 配置说明:
size 请求body部分的最大值
例子:request_body_max_size 10 KB
9 collapsed_forwarding
§ 解释:
§ 当有多个相同的URI回源时,合并成一个请求处理。默认关闭,以避免增加动态内容延迟;开启他,可以降低源站的压力,并使大多缓存object从中受益。
§ 用法:
§ 语法:collapsed_forwarding on | off
§ 配置说明:
on|off 开启或者关闭
例子:collapsed_forwarding off
1 update_headers
§ 解释:
§
§ 用法:
§ 语法:
§ 配置参数:
2 via
§ 解释:
§ 开启或者关闭via头,默认开启
§ 用法:
§ 语法:via on|off
§ 配置参数:on/off Enable/disable via header
例子:via on
3 header_access
§ 解释:
§ 创建一个header的ACL列表,使可以对header进行调整。被deny的header会被删除
§ 用法:
§ 语法:header_access header_name allow|deny all
§ 配置参数:
header_name:header名称
allow|deny:对header进行允许或拒绝操作
例子:header_access Proxy-Connection allow all
4 header_replace
§ 解释:
§ 配合上面的header_access使用,改变被deny的Header值,对于被header_access做了deny操作的header,默认情况下,header的名及header的值都会被删除
§ 用法:
§ 语法:header_replace header_name message
§ 配置参数:
header_name: 内容被替换的header名
message: 被替换的内容(即Header的值)
例子:header_access ETag deny all
header_replace ETag asdfghjkl
5 deny_info
§ 解释:
§ 得到http_access规则拒绝的请求,用于定义一个定制的错误页面
§ 用法:
§ 语法:deny_info err_page_name acl
deny_info link acl
§ 配置参数:
err_page_name 要显示的自定义的错误页面
acl 访问控制列表
Link 拒绝的请求连接的地址
例子:deny_info test_zp
6 forwarded_for
§ 解释:
§ 如果开启,Squid将往上层转发“X-Forwarded-For”头信息,这个头里面包含下层请求过的ip地址,如果关闭,没有“X-Forwarded-For”这个头信息。
§ 用法:
§ 语法:forwarded_for on|off
§ 配置参数:
例子:forwarded_for on
7 reload_into_ims
§ 解释:
§ Squid将客户端的no_cache或reload请求修改为If-Modified-Since回源。
§ 用法:
§ 语法:reload_into_ims on|off
§ 配置参数:
on:表示开启
off:表示关闭
例子:reload_into_ims off
8 cachemgr_passwd
§ 解释:
§ 定义一个要执行的动作所需要的密码
§ 用法:
§ 语法:cachemgr_passwd password action action ...
§ 配置参数:
Password:要执行动作的密码
Action:要执行的动作
例子:chemgr_passwd test4squid config
1 cache_mem
§ 解释:
§ cache使用内存的大小
§ 用法:
§ 语法:cache_mem size
§ 配置参数:
size: 大小
例子:cache_mem 32 MB
2 maximum_object_size_in_memory
§ 解释:
§ 定义一个保存在内存中的object的最大值,大于这个值的object,将不会保存在内存中。
§ 用法:
§ 语法:maximum_object_size_in_memory size
§ 配置参数:
size:想要设置的大小
例子:maximum_object_size_in_memory 100 KB
3 memory_replacement_policy
§ 解释:
§ 定义一个内存命中的object,换入换出的算法 默认值:memory_replacement_policy lru
§ 用法:
§ 语法:memory_replacement_policy policy
§ 配置参数:
policy:定义算法
例子:memory_replacement_policy lru
4 cache_replacement_policy
§ 解释:
§ 定义Cache命中的换入换出的算法
§ 用法:
§ 语法:cache_replacement_policy policy
§ 配置参数:
policy:定义算法
例子:cache_replacement_policy lru
5 minimum_object_size
maximum_object_size
§ 解释:
§ 比min值小的object不会被保存在磁盘上,该值以KB为单位,默认为0KB,这意味着没有最小值。超过max大小的object不会被保存在磁盘上,该值以KB为单位,默认为4MB。
§ 用法:
§ 语法:minimum_object_size size
maximum_object_size size
§ 配置参数:
Size:object大小
例子:minimum_object_size 10 KB maximum_object_size 320010 KB
6 cache_swap_low
cache_swap_high
§ 解释:
§ 这两个标签定时了什么时候调用cache替换策略,当磁盘使用率高于cache_swap_high的时候开始使用替换策略,直到磁盘使用率低于cache_swap_low。
§ 用法:
§ 语法:cache_swap_low percent( 0-100 )
cache_swap_high percent( 0-100 )
§ 配置参数:
percent :高和低的百分比
例子:cache_swap_low 50
cache_swap_high 75
1 cache_mgr
§ 解释:
§ 这个配置,作为网站管理员的联系方式,将被添加到任何显示给客户的错误页面中
§ 用法:
§ 语法:cache_mgr mail_id
§ 配置参数:
mail_id:email地址
例子:cache_mgr support@chinacache.com
1 cache/no_cache
§ 解释:
§ 定义一个acl用于强制cache或者no_cache
§ 用法:
§ 语法:cache allow|deny acl ...
§ 配置参数:
allow/deny 允许或者拒绝匹配的acl
acl 访问控制列表
例子:acl QUERY urlpath_regex cgi-bin
\?
cache deny
QUERY
1 storeurl_rewrite_program
§ 解释:
§ 指定一个外部程序,重写storeurl
§ 用法:
§ 语法:storeurl_rewrite_program path to file
§ 参数配置:
path to file:指定外部程序的位置
2 storeurl_rewrite_children
§ 解释:
§ 指定外部程序的子进程数
§ 用法:
§ 语法:storeurl_rewrite_children number
§ 参数配置:
number:数量
3 storeurl_rewrite_concurrency
§ 解释:
§ 指定每个子进程可以同时处理的请求数
§ 用法:
§ 语法:storeurl_rewrite_concurrency number
§ 参数配置:
number:数量
4 url_rewrite_program
§ 解释:
§ 指定一个可执行程序,重写url
§ 用法:
§ 语法:url_rewrite_program path/to/rewriter/program
§ 参数配置:
path/to/rewriter/program:执行程序的位置
5 url_rewrite_children
§ 解释:
§ 指定可执行程序的子进程数
§ 用法:
§ 语法:url_rewrite_children number
§ 参数配置:
number:数量
6 url_rewrite_concurrency
§ 解释:
§ 指定每个子进程可以同时处理的请求数
§ 用法:
§ 语法:url_rewrite_concurrency number
§ 参数配置:
number:数量
7 url_rewrite_host_header
§ 解释:
§ 是否改写host头
§ 用法:
§ 语法:url_rewrite_host_header on/off
§ 参数配置:
on/off:是否开启
1 acl
§ 解释:
§ 访问控制列表
§ 用法:
§ 语法:acl aclname acltype string1 ...
§
配置参数:aclname acl名字
acltype acl类型
string 匹配的字符串
例子:acl ipacl src 192.168.100.111
acl portacl port
80
acl
dstdomain_acl dstdomain www.test.com
acl
url_regex_acl url_regex -i ^
acl method_acl
method POST
acl time_acl
time M 15:00-16:00
acl browser_acl
browser Mozilla
acl req_acl
req_header Cookid
2 http_access
§ 解释:
§ 允许和拒绝所定义的访问控制列表
§ 用法:
§ 语法:http_access allow|deny [!] aclname ...
§ 配置参数:allow|deny: 允许或者拒绝
aclname: 定义的acl
例子:acl ip_in_fqdn url_regex -i ^http://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/.*
http_access deny ip_in_fqdn
3 http_reply_access
§ 解释:
§ 对客户端请求的响应,进行ACL匹配。如果访问没有被匹配,那么最后一行适用,因此,好的做法是,在规则最后加上"allow all"或者"deny all"。
§ 用法:
§ 语法:http_reply_access allow|deny [!] aclname ...
§ 配置参数:allow|deny:对声明的acl进行允许或拒绝操作
aclname acl名字
例子:acl reject urlpath_regex i home
http_reply_access deny reject
4 icp_access
§ 解释:
§ 用于cache集群之间的访问控制
§ 用法:
§ 语法:icp_access allow|deny [!] aclname ...
§ 配置参数:allow|deny:对声明的acl进行允许或拒绝操作
aclname acl:名字
例子:icp_access allow all
5 reply_body_max_size
§ 解释:
§ 指定响应的header的最大值
§ 用法:
§ 语法:reply_header_max_size size
§ 配置参数:size: 指定响应header的最大值
例子:reply_header_max_size 20 KB
6 reply_header_max_size
§ 解释:
§ 指定响应的body的最大值
§ 用法:
§ 语法:reply_body_max_size size [acl acl...]
§ 配置参数:Size 指定响应body的最大值
例子:acl site url_regex -i ^
reply_body_max_size 5 KB site
1 store_dir_select_algorithm
§ 解释:
§ 用于cache存储目录的选择
§ 用法:
§ 语法:store_dir_select_algorithm algorithm-type
§ 配置参数:algorithm-type:指定的算法
例子:store_dir_select_algorithm round-robin
2 minimum_expiry_time
3 vary_ignore_expire
4 server_http11
§ 解释:
§ 让squid回源使用HTTP/1.1版本协议
§ 用法:
§ 语法:server_http11 on|off
§ 配置参数:on|off:开启或者关闭
例子:server_http11 on|off
5 client_persistent_connections
§ 解释:
§ 配置clients方向支持长连接
§ 用法:
§ 语法:client_persistent_connections on|off
§ 配置参数:on|off:开启或者关闭
例子:client_persistent_connections on
6 server_persistent_connections
§ 解释:
§ 配置servers方向支持长连接
§ 用法:
§ 语法:server_persistent_connections on|off
§ 配置参数:on|off:开启或者关闭
例子:server_persistent_connections on
7 ignore_ims_on_miss
§ 解释:
§ 当miss的情况下,忽略if_modified_since。
§ 用法:
§ 语法:ignore_ims_on_miss on | off
§ 配置参数:on|off:开启或者关闭
例子:ignore_ims_on_miss on
8 coredump_dir
§ 解释:
§ 配置core文件的产生路径。
§ 用法:
§ 语法:coredump_dir directory
§ 配置参数:Directory 指定一个文件夹
例子:coredump_dir /usr/local
1. connect_timeout
§ 官方解释:TCP的建联超时时间
§ 适用场合:FC 回源与源站建联超时时间,适用于回源方向。
§ 默认配置:connect_timeout 1 minute
2. request_timeout
§ 官方解释:建立连接后的请求超时时间。
§ 适用场景:客户端与FC建联后的,FC判断客户端请求的超时的时间,即FC多长时间没有读到客户端发来的数据就超时。
§ 默认配置:request_timeout 5 minutes
3. read_timeout
§ 官方解释:读数据超时时间,只对回源断有效
§ 适用场景:FC与源站建立了连接成功后,并发送完请求数据,读源站发回来的响应超时时间。
§ 默认配置:read_timeout 15 minutes
4. pconn_timeout
§ 官方解释:空闲插连接保持时间
§ 适用场景:FC与源站建立长连接后,与源站保持的空闲长连接时间。
§ 默认配置:pconn_timeout 1 minute
5. persistent_request_timeout
§ 官方解释:长连接上等待下一个请求到来的超时时间
§ 适用场景:FC与客户端建立长连接,当前请求处理结束,等待下一个请求到来的超时时间。
6. dns_timeout
§ 官方解释:dns查询超时时间
§ 默认配置:dns_timeout 2 minutes
7. positive_dns_ttl
§ 官方解释:正确的dns缓存过期时间
§ 适用场景:FC一般使用本地dns来解析,当本地dns解析返回的ttl,一般是60s,dns缓存过期时间取该配置项羽dns解析返回ttl的较小值,且该值不能小于negative_dns_ttl
§ 默认配置: positive_dns_ttl 6 hours
8. negative_dns_ttl
§ 官方解释:错误dns解析缓存时间
§ 默认配置:negative_dns_ttl 1 minute