| Blog信息 |
|
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7645754 建立时间:2006年5月29日 |

| |
|
[网站架构]linux下利用Squid构建高速的Proxy Server(3) 软件技术
lhwork 发表于 2007/1/21 15:42:41 |
| # TAG: cache_mgr cache_mgr webmaster@localhost #管理员信箱 # TAG: cache_effective_user cache_effective_user squid #运行squid时的用户 cache_effective_group squid #运行squid时的组 # TAG: visible_hostname visible_hostname ProxyServer #代理服务器名称 # OPTIONS FOR THE CACHE REGISTRATION SERVICE(cache注册服务选项) # ----------------------------------------------------------------------------- # HTTPD-ACCELERATOR OPTIONS(HTTPD加速选项) # ----------------------------------------------------------------------------- #设定透明代理 httpd_accel_host ProxyServer #主机名 httpd_accel_port 80 #透明代理端口 httpd_accel_with_proxy on httpd_accel_uses_host_header on # MISCELLANEOUS(杂项) # ----------------------------------------------------------------------------- # TAG: logfile_rotate #squid会定期的将日志文件更名并打包。 #比如正在使用的日志文件为access.log,squid会将其更名并打包为 access.log.1.gz; #过了一定时间后,squid又会将access.log.1.gz更名为access.log.2.gz #并将当前的日志文件更名并打包为access.log.1.gz,以此循环。 #logfile_rotate指定的数字即为打包并备份的文件的数量,当达到这一数目时, #squid将删除最老的备份文件。默认值为1 0。如果想手动来进行这些操作, #可以用logfile_rotate 0来取消自动操作。 logfile_rotate 4 # TAG: forwarded_for on|off #关闭此项将在访问某些论坛时显示的IP是unknown, #如果打开则显示的是你client的内网IP forwarded_for off #图标文件目录 # icon_directory /usr/local/squid/share/icons #错误提示文件目录 # error_directory /usr/local/squid/share/errors/Simplify_Chinese # TAG: snmp_port # Squid can now serve statistics and status information via SNMP. # By default it listens to port 3401 on the machine. If you don’t # wish to use SNMP, set this to "0". # #Default: # snmp_port 3401 # TAG: snmp_access # Allowing or denying access to the SNMP port. # # All access to the agent is denied by default. # usage: # # snmp_access allow|deny [!]aclname ... # #Example: # snmp_access allow snmppublic localhost # snmp_access deny all # #Default: # snmp_access deny all # DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)(延时池参数) # ----------------------------------------------------------------------------- # TAG: coredump_dir #当squid突然挂掉的时候,或者突然出现什么故障的时候,将squid在内存中的资料写到硬盘中 coredump_dir /usr/local/squid/var/cache3.设置iptables支持透明代理 设置squid+iptables支持透明代理前请先设置好NAT,可以使用下面的简单语句 CODE:echo "1" >; /proc/sys/net/ipv4/ip_forward #设置转发 /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE #设置nat功能 iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128 #将所有80端口的请求都转发到suqid的3128端口上 其中192.168.1.0/24表示192.168.1.1-254这个网段通过squid和nat做透明代理。 这样,当用户访问www服务的时候可以使用cache作为高速代理,减少流量,而其他服务则通过nat转发。 4.使用上层代理 当你访问国外网站比较慢的时候,可以通过设置代理访问,那么我们自己的代理服务器能否也设置别人的代理来访问国外的网站呢?答案是肯定的。 例如有代理proxy1.cnlinux.net能以较快的速度访问国外,且我们访问它也比较快,所以我们用它来作为我们访问国外网站的上层代理。 我们需要在squid.conf中添加如下参数: CODE:<cache_peer>; <主机名称/地址>; <类别>; <http端口>; <icp端口>; <其他参数>; 类别主要有上层的parent和同一层的sibling两种,我们这里主要介绍的是上层代理,就是parent,如果你需要架设代理服务器集群的话可以采用sibling,这里我们就不做讨论了。 其他参数有: CODE:proxy-only :只向上层代理要资料,自己不缓存到本地proxy中。 weight=n :比重,当我们设置多台上层代理的时候,这几台代理的功能都相同的,可以通过设置此项来决定那台上层代理比较重要,n越大表示越重要。 no-query :当使用sibling类别的时候,向同一层的proxy索要资料的时候就会向其送出icp请求,可以使用no-query来取消icp请求,一般我们向上层proxy请求资料的时候可以不需要发送icp包,以降低流量。 default :表示将这台proxy设置为默认proxy no-netdb-exchange :表示不向proxy送出imcp包的请求。 no-digest :表示不纪录向上层proxy提交的请求。 #上层proxy设置 cache_peer proxy1.cnlinux.net parent 3128 3130 no-digest no-netdb-exchange #设置访问规则,可以用域名,也可以用IP acl usa dstdomain .com.us #美国.com.us的网站 acl usaip dst 18.0.0.0/8 #美国的部分IP段 #放行禁止规则 cache_peer_access proxy1.cnlinux.net allow usa #允许usa规则使用此上层proxy cache_peer_access proxy1.cnlinux.net deny !usa #禁止所有非usa规则使用此上层proxy cache_peer_access proxy1.cnlinux.net allow usaip cache_peer_access proxy1.cnlinux.net deny !usaip |
|
|