全部博文(30)
分类: 系统运维
2012-12-05 17:39:53
http_port 8080 vhost vport #侦听端口 表示根据请求主机头来转发到后端WEB机器 虚拟主机支持 多port支持
icp_port 0 #提供从相邻的squid查询端口,如果不提供该服务,将端口改为0
cache_mem 4096 MB #额外使用内存量,原则:如果服务器只做代理应设置值应为真实内存的1/2,
如果还做其它服务,设置值最好不要超过真实内存的1/3
cache_swap_low 90
cache_swap_high 95 #当磁盘使用量到限制时,自动删最冷的磁盘文件。
maximum_object_size 10 MB #单个文件最大缓存大小,超过这个大小将不缓存
minimum_object_size 300 bytes
maximum_object_size_in_memory 1024 KB #在内存中缓存的最大文件的大小,超过这个大小将不缓存到内存中
negative_ttl 1 second #缓存错误页面时间,如不缓存可以设置成0
ipcache_size 10240 #DNS正反解所得到的IP存在缓存区的大小,这样可以加快解析速度
fqdncache_size 10240 #DNS正反解所得到的域名存在缓存区的大小,这样可以加快解析速度
cache_dir diskd /data/squid/cache 50000 64 128 #指定cache在硬盘上存放的路径,最大存储50G,64个一
级目录,128个二级目录
logformat abc-squid %ts.%03tu %6tr %>a %Ss/%03Hs %
cache_access_log /data/squid/logs/access.log abc-squid #访问日志文件
cache_log /data/squid/logs/cache.log #squid缓存日志文件
cache_store_log none #缓存日志文件禁用(主要是头信息)
strip_query_terms off #记录url里”?”后面的内容
check_hostnames off #关闭检查主机名
dns_children 30 #指定本地默认启动DNS查询进程数
dns_testnames localhost #指定自己的主机名
cache_mgr #管理员联系方式
visible_hostname ts_iscache01.abc.org #可见主机名
cache_effective_user squid #squid对应系统管理用户
cache_effective_group squid
memory_pools off #内存池设置为关闭
memory_pools_limit none #设置内存池关闭
read_ahead_gap 20 KB #当从其他服务器取数据的时候,先发给客户端这样一个大小的检验。
store_avg_object_size 6 KB #平均存储对象大小,所有文件大小/文件数量在3-6KB之间
store_objects_per_bucket 256 #每个objects,存储对象都会有一个hash表,降低或者增加这个
值,也能改善store的效率
log_icp_queries off #关闭日志记录ICP事物(默认记录了http等)
#refresh防止客户端一直刷新造成cache回源确认,对此设置了缓存时间。间接的控制磁盘缓存,宽松的设置增
加了cache的命中率,同样也增加了用户接受过时相应的几率; 保守的设置,降低了cache的命中率和过时响应
。
#override-expire:该选项导致squid在检查Expires头部之前,先检查min值。这样,一个非零的min时间让
squid返回一个未确认的cache命中,即使该响应准备过期。
refresh_pattern -i . 180 50% 360 override-expire
override-lastmod reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i . 180 50% 360 override-expire override-lastmod
reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i . 180 50% 360 override-expire override-
lastmod
reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i . 180 50% 360 override-expire override-
lastmod
reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i . 180 50% 360 override-expire
override-lastmod reload-into-ims ignore-reload ignore-no-cache
refresh_pattern -i .*.(jpg|jpeg|gif|png|bmp|swf) 180 50% 360 ignore-reload
refresh_pattern -i .*.(flv|wmv|mp3|mp4|avi|rm) 180 50% 360 ignore-reload
refresh_pattern -i . 180 50% 360 override-expire override-lastmod reload-into-ims
ignore-reload ignore-no-cache
#控制squid是否继续传输被用户中断的请求,当用户中断请求时,squid把检测 quick_abort 的值。如果剩余部
分小于“quick_abort_min”指定的值,squid 把继续完成剩余部分的传输;如果剩余部分大于
“quick_abort_max”指定的值,squid 把终止剩余部分的传输;如果已完成“quick_abort_pct”指定的百分比
,squid把继续完成剩余部分的传输。
quick_abort_min -1 KB #表示检索始终进行
quick_abort_max -1 KB
quick_abort_pct 1 #如果已完成“quick_abort_pct”指定的百分比,squid把继续完成剩余部分的传输
read_timeout 5 minutes #如果在指定的时间内 squid 尚未从被请求的服务器读入任何数据,则 squid 将终
止该客户请求。
request_timeout 5 minutes #设置在建立与客户的连接后, squid 将花多长时间等待客户发出 HTTP 请求
client_lifetime 180 minute #客户在与 squid 建立连接后,可以将该连接保持多长时间,需要修改小点。
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl ControlCentre src 116.213.141.64/255.255.255.224
acl IP dstdom_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$
http_access deny IP
acl STBSTATE url_regex -i ^\.is\.abc\.com:8080/yst-epg/stb-state!getStbState\.action*
acl BILL url_regex -i ^\.is\.abc\.com:8080/yst-epg/charge-billing!bill\.action*
acl PAY url_regex -i ^\.is\.abc\.com:8080/yst-epg/charge-pay!pay\.action*
acl GETPROGRAM url_regex -i
^\.is\.abc\.com:8080/yst-epg/stb-state!getProgramState\.action*
#不缓存以上内容
cache deny STBSTATE
cache deny BILL
cache deny PAY
cache deny GETPROGRAM
#hierarchy_stoplist cgi-bin ?
#acl QUERY urlpath_regex cgi-bin \?
#cache deny QUERY
acl DYNTYPE urlpath_regex -i cgi-bin \.asp \.php \.cgi \.pl \.py \.aspx\.ts \.rar \.exe \.gz
\.tar .\zip .\do .\jsp
cache deny DYNTYPE
acl PURGE method PURGE
http_access allow PURGE localhost
http_access allow PURGE ControlCentre
#创建一个header的ACL列表,使可以对header进行调整。被deny的header会被删除
header_access Via deny all
header_access X-Forwarded-For deny all
header_access header allow all
http_access allow all
acl ISIMAGES dstdomain images.is.abc.com
acl ISEPG dstdomain epg.is.abc.com
acl PANEL dstdomain panel.is.abc.com
acl ISPOMS dstdomain poms.is.abc.com
cache_peer images.is.abc.com parent 80 0 no-query no-netdb-exchange originserver
cache_peer_access images.is.abc.com allow ISIMAGES
cache_peer epg.is.abc.com parent 8080 0 no-query no-netdb-exchange originserver
cache_peer_access epg.is.abc.com allow ISEPG
cache_peer panel.is.abc.com parent 8080 0 no-query no-netdb-exchange originserver
cache_peer_access panel.is.abc.com allow PANEL
cache_peer poms.is.abc.com parent 8080 0 no-query no-netdb-exchange originserver
cache_peer_access poms.is.abc.com allow ISPOMS
#设定不同域名转发到不同的cache_peer上,如果没有这项.不同的域名可能被分发到同一台服务
器(或同一台服务器的端口)上.
#name=a表示给cache_peer一个别名