站长论坛
标题:
Squid反向代理服务器
[打印本页]
作者:
tznktg
时间:
2008-10-30 08:52
标题:
Squid反向代理服务器
一、需要明白的三个概念
l Cache命中率:Cache命中在Squid每次从它的缓存里满足HTTP请求时发生。Cache命中率,是所有HTTP请求中命中的比例。WEB缓存典型的Cache命中率在30%-60%之间。
l Cache丢失:Cache丢失在Squid不能从它的缓存里满足HTTP请求时发生。
以下情况会发生Cache丢失现象:
a) Squid第一次接受到对特殊资源的请求时
b) Squid清除缓存以释放空间给新对象
c) 被请求的资源不可达
l Cache确认:保证Squid不对用户返回过时数据。重复使用缓存对象时,从原始服务器确认它是否仍然有效。
二、Squid对系统和硬件需求
l 可以使用各类型的类unix系统,Linux、FreeBSD
l 内存是最重要的资源,内在短缺会严重影响性能;磁盘空间也是另一个重要因素,更多磁盘空间意味着更多的缓存目标和更高的命中率。
磁盘空间和内在之间关系的基本规则:每G磁盘空间需要32M内在。
内存需求依赖如下事实:缓存目标大小,CPU体系(32位/64位),同时在线的用户数量,使用的特殊功能。
建立一个足够磁盘空间,可存储3-7天WEB流量数据的系统。
三、Squid的安装
Squid在高负载下,需要大量的内核资源,需要给系统配置比正常情况更高的文件描述符和缓存。最好在开始编译Squid之前来增加这些限制的大小。
Squid在用完文件描述符会导致拒绝服务,Squid发现文件描述符短缺时,会发布警告。大多数情况下1024个文件描述符足够了,非常忙的Cache可能需要4096或更多,在配置文件描述符限制时,推荐设置系统级限制的数量为每个进程限制的2倍。
l 调整内核
文件描述符
临时端口范围
四、Squid配置
l Cache_effective_user squid
执行完特别权限任务后,变成哪个用户;root用户启动Squid时才使用到此指令。只有root用户能绑定TCP套接字到特权端口上,如80端口。
l http_port
告诉Squid在哪个端口侦听HTTP请求,默认端口是3128。假如将Squid作为加速器运行,该将它设为80。
l cache_log /squid/logs/cache.log 包含状态和调试信息
cache_access_log /squid/logs/access.log /dev/null
cache_store_log /squid/logs/store.log none
l visible_hostname squid.packet-pushers.net 设置运行Squid的主机名
l
cache_mgrSquid@web-cache.net
管理员联系信息
l cache_dir scheme directory size L1 L2 readonly|max-size
l cache_swap_low 保持磁盘使用量在这个值左右
l maximum_object_size 比此值更大的响应不会被缓存
l minimum_object_size 比此值小的响应不会被缓存
l cache_replacement_policy 磁盘cache的置换策略
五、Squid运行
l Squid –k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse
Reconfigure 重新读取配置文件
Rotate 导致Squid滚动它的日志
Shutdown 发送关闭Squid进程的信号
Interrupt 立刻关闭Squid
Kill 发送kill信号给Squid
Debug 将Squid设置成完全调试模式
Check 检查运行中的Squid,显示Squid是否在运行
Parse 解析Squid.conf文件,如果配置文件有错误,返回非0值
l Squid –s 激活日志记录到syslog进程,squid使用local4 syslog设备。
l Squid –z 初始化cache,或者交换,目录,在首次运行或增加新cache时。
l %Squid –N –d1N保持Squid在前台运行,d1在标准错误显示1级调试信息。
六、访问控制
一些基本的ACL类型:
l IP地址 使用对象:src/dst/myip
l 域名 使用对象:srcdomain/dstdomain/cache_host_domain
l 用户名 使用对象:ident/proxy_auth
l 正则表达式 使用对旬:srcdom_regx/dstdom_regex/url_regex/urlpath_regex/browser
referer_regex/ident_regex/proxy_auth_regex/req_mime_type/rep_mime_type
acl Foo url_regex –I ^http://www
l Tcp端口号 使用对象:port/myport
l 自主系统号 使用对象:src_as/dst_as
七、反向代理的配置
http_port 80 指定squid监听HTTP请求的端口
httpd_accel_host 192.168.0.100 指定web服务器的IP地址
httpd_accel_port 80 指定web服务器的端口号
httpd_accel_single_host on squid转发cache丢失到httpd_accel_host定义主机
访问控制
acl acceleratedProtocol protocol HTTP
acl acceleratedPort port 80
acl All src 0/0
acl TheOriginServer dst 192.168.113.0
http_access allow TheOriginServer acceleratedProtocol acceleratedPort
http_access deny All
欢迎光临 站长论坛 (http://tzlink.com/bbs/)
Powered by Discuz! X3.2