squid(⼀)配置⽂件详解
squid常⽤命令:
/usr/local/squid/sbin/squid -z 初始化缓存空间/usr/local/squid/sbin/squid 启动
/usr/local/squid/sbin/squid -k shutdown 停⽌/usr/local/squid/sbin/squid -k rotate 轮循⽇志
/usr/local/squid/sbin/squid -k parse 解析校验配置⽂件/usr/local/squid/sbin/squid -k reconfigure 重新载⼊配置⽂件
#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了⼀个访问控制列表。详细情况参见和Squid软件#携带的⽂档。这⾥的访问控制列表允许所有对代理服务的访问,因为这⾥该代理是加速web服务器。acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问
acl manager proto http #manager url协议为httpacl localhost src 127.0.0.1/255.255.255.255 #允午本机IP
acl to_localhost dst 127.0.0.1 #允午⽬的地址为本机IPacl Safe_ports port 80 # 允许安全更新的端⼝为80
acl CONNECT method CONNECT #请求⽅法以CONNECT
http_access allow all #允许所有⼈使⽤该代理.因为这⾥是代理加速web服务器http_reply_access allow all #允许所有客户端使⽤该代理
acl OverConnLimit maxconn 16 #每个IP最⼤允许16个连接,防⽌攻击http_access deny OverConnLimit
icp_access deny all #禁⽌从邻居服务器缓冲内发送和接收ICP请求.miss_access allow all #允许直接更新请求
ident_lookup_access deny all #禁⽌lookup检查DNS
http_port 8080 transparent #指定Squid监听浏览器客户请求的端⼝号。
hierarchy_stoplist cgi-bin ? #⽤来强制某些特定的对象不被缓存,主要是处于安全的⽬的。acl QUERY urlpath_regex cgi-bin ?cache deny QUERY
cache_mem 1 GB #这是⼀个优化选项,增加该内存值有利于缓存。应该注意的是: #⼀般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这⾥1Gfqdncache_size 1024 #FQDN ⾼速缓存⼤⼩
maximum_object_size_in_memory 2 MB #允许最⼤的⽂件载⼊内存memory_replacement_policy heap LFUDA #动态使⽤最⼩的,移出内存cachecache_replacement_policy heap LFUDA #动态使⽤最⼩的,移出硬盘cache
cache_dir ufs /home/cache 5000 32 512 #⾼速缓存⽬录 ufs 类型 使⽤的缓冲值最⼤允午1000MB空间,#32个⼀级⽬录,512个⼆级⽬录
max_open_disk_fds 0 #允许最⼤打开⽂件数量,0 ⽆minimum_object_size 1 KB #允午最⼩⽂件请求体⼤⼩maximum_object_size 20 MB #允午最⼤⽂件请求体⼤⼩cache_swap_low 90 #最⼩允许使⽤swap 90%cache_swap_high 95 #最多允许使⽤swap 95%ipcache_size 2048 # IP 地址⾼速缓存⼤⼩ 2Mipcache_low 90 #最⼩允许ipcache使⽤swap 90%ipcache_high 95 #最⼤允许ipcache使⽤swap 90%
access_log /var/log/squid/access.log squid #定义⽇志存放记录cache_log /var/log/squid/cache.log squid
cache_store_log none #禁⽌store⽇志
emulate_httpd_log on #将使Squid仿照Web服务器的格式创建访问记录。如果希望使⽤ #Web访问记录分析程序,就需要设置这个参数。
refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload #更新cache规则acl buggy_server url_regex ^ http:// #只允许http的请求broken_posts allow buggy_server
acl apache rep_header Server ^Apache #允许apache的编码broken_vary_encoding allow apache
request_entities off #禁⽌⾮http的标分准请求,防⽌攻击header_access header allow all #允许所有的http报头relaxed_header_parser on #不严格分析http报头.
client_lifetime 120 minute #最⼤客户连接时间 120分钟
cache_mgr #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。cache_effective_user squid #这⾥以⽤户squid的⾝份Squid服务器cache_effective_group squid
icp_port 0 #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端⼝号。 #这⾥设置为0是因为这⾥配置Squid为内部Web服务器的加速器, #所以不需要使⽤邻居服务器的缓冲。0是禁⽤
# cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1
cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchangecache_peer_domain 127.0.0.1 hostname_aliases 127.0.0.1
error_directory /usr/share/squid/errors/Simplify_Chinese #定义错误路径
always_direct allow all # cache丢失或不存在是允许所有请求直接转发到原始服务器ignore_unknown_nameservers on #开反DNS查询,当域名地址不相同时候,禁⽌访问coredump_dir /var/log/squid #定义dump的⽬录max_filedesc 2048 #最⼤打开的⽂件描述
half_closed_clients off #使Squid在当read不再返回数据时⽴即关闭客户端的连接。 #有时read不再返回数据是由于某些客户关闭TCP的发送数据
#⽽仍然保持接收数据。⽽Squid分辨不出TCP半关闭和完全关闭。
buffered_logs on #若打开选项“buffered_logs”可以稍稍提⾼加速某些对⽇志⽂件的写⼊,该选项主要是实现优化特性。#防⽌天涯盗链,转嫁给百度acl tianya referer_regex -i tianyahttp_access deny tianyadeny_info tianya#阻⽌baidu蜘蛛
acl baidu req_header User-Agent Baiduspiderhttp_access deny baidu
#同⼀IP客户端的最⼤连接数acl OverConnLimit maxconn 128http_access deny OverConnLimit
#防⽌被⼈利⽤为HTTP代理,设置允许访问的IP地址acl myip dst 222.18.63.37http_access deny !myip
#允许本地管理
acl Manager proto cache_object
acl Localhost src 127.0.0.1 222.18.63.37http_access allow Manager Localhostcachemgr_passwd 53034338 allhttp_access deny Manager#仅仅允许80端⼝的代理acl all src 0.0.0.0/0.0.0.0acl Safe_ports port 80 # httphttp_access deny !Safe_portshttp_access allow all
#Squid信息设置
visible_hostname happy.swjtu.edu.cncache_mgr
#基本设置
cache_effective_user squidcache_effective_group squidtcp_recv_bufsize 65535 bytes
#2.6的反向代理加速配置
cache_peer 127.0.0.1 parent 80 0 no-query originserver#错误⽂档
error_directory /usr/local/squid/share/errors/Simplify_Chinese#单台使⽤,不使⽤该功能icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ? .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .execache deny QUERY
acl apache rep_header Server ^Apachebroken_vary_encoding allow apache
refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern . 0 20% 4320
cache_store_log none
pid_filename /usr/local/squid/var/logs/squid.pidemulate_httpd_log on
logformat combined %>a %ui %un [%tl] \"%rm %ru HTTP/%rv\" %Hs %h\" \"%{User-Agent}>h\" %Ss:%Shcache_log /usr/local/squid/var/logs/cache.logaccess_log /usr/local/squid/var/logs/access.log combinedcoredump_dir /usr/local/squid/var/cache
cache_dir ufs /usr/local/squid/var/cache 10000 16 256dns_children 32hosts_file /etc/hosts
cache_mem 400 MBcache_swap_low 90cache_swap_high 95
maximum_object_size 32768 KB
maximum_object_size_in_memory 4096 KBemulate_httpd_log on
#防⽌盗链
acl picurl url_regex -i .bmp$ .png$ .jpg$ .gif$ .jpeg$acl mystie1 referer_regex -i happy.swjtu.edu.cnhttp_access allow mystie1 picurlacl nullref referer_regex -i ^$http_access allow nullrefacl hasref referer_regex -i .+http_access deny hasref picurl