使用MRTG进行squid流量的限制
本文讲述的是 使用MRTG进行squid流量的限制:
lSquid配置(仅对必要选项配置并说明
http_port 80
此选项用于Squid代理所侦听的端口,由于要实现Http加速代理,则侦听端口80
- tcp_outgoing_address 255.255.255.255
此句法指定了远程服务器的IP地址,这里我们使用255.255.255.255来指定为所有地址
- tcp_incoming_address
这里可以使用http_port语法进行绑定端口和IP地址。表示客户端的请求。可以不使用。
- cache_mem 64 MB
由于Squid在读写磁盘,I/O通道,数据转贮等需要大量内存,我们可以把内存值稍微设置大一些,这样可以提供服务器性能。
- cache_swap_low 95
这用做表示缓存内部对象的替换的衡量基线。当交换分区的磁盘利用率超越这个基线,那么缓存对象替换也就随之开始。这里是用百分率做衡量标准。
- cache_swap_high 98
此标记用于缓存对象替换的最高程度,当交换分区磁盘利用率接近此设置,则表示对象的更新程度更为剧烈。这里由于我的缓存区设置比较大,因此设置为98%。
下面几个配置标记采用系统默认配置。
- { maximum_object_size 4096 KB
{ 超过此尺寸的对象将不缓存。
- { minimum_object_size 0 KB
{ 小于此尺寸的对象将不缓存。
- { maximum_object_size_in_memory 8 KB
{ 内存中能缓存的最大对象尺寸。
- { ipcache_size 1024
{ 指定IP缓存大小。
- { ipcache_low 90
{ 缓存IP地址的最低基线。
- { ipcache_high 95
{ 缓存IP地址的最高极限。
- { fqdncache_size 1024
{ 缓存DNS全域名解析的尺寸。
- cache_replacement_policy lru
此标记用于当缓存新对象时,使用缓存策略来清除缓存中特定对象。这里使用lru表示:它只替换长时间没有被访问过的对象。其他策略请参看配置文档介绍。
- memory_replacement_policy lru
此用法同上,区别在于替换内存对象。
- cache_dir ufs /cache 4000 16 256
设置缓存根目录为/cache,类型为ufs,缓存区大小为4G,可以有16个二级子目录,每有二级目录有256个三级子目录。
- cache_access_log /var/log/squid/access.log
- cache_log /var/log/squid/cache.log
- cache_store_log /var/log/squid/store.log
- cache_swap_log /var/log/squid/swap.log
上面几项是缓存日志记录的路径和文件名。
- log_ip_on_direct on
记录客户端主机的IP地址。
- log_fqdn on
记录全DNS域名解析。
- mime_table /usr/local/squid/etc/mime.conf
Squid所用mime的文件路径
- pid_filename /usr/local/squid/logs/squid.pid
Squid进程ID的文件。
- ftp_user Squid@ynst.net.cn
这里可以使用匿名登陆FTP服务器。
- ftp_list_width 32
FTP文件列表长度,超过长度则截断文件名。
- ftp_passive on
允许主动连接FTP服务器。
- dns_nameservers 202.98.187.1
指定代理的域名解析服务器。
- authenticate_program /usr/local/squid/bin/ncsa_auth
- /usr/local/squid/etc/passwd
代理认证程序,这里在/usr/local/squid/etc使用htpasswd产生一个密码文件,具体方法如下:
- #htpasswd –cdb passwd auth_usr1 pass1
- #htpasswd –db passwd auth_usr2 pass2
- #htpasswd –db passwd auth_usr3 pass3
创建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三个认证用户。
- authenticate_children 5
所需要要产生的认证进程数。
- authenticate_ttl 3600
此标记设置认证保持时间。
- authenticate_ip_ttl 1800
此标记设置认证绑定IP地址的时间长度。
- authenticate_ip_ttl_is_strict on
此标记可在authenticate_ttl时间内,拒绝其他非认证IP地址访问。
- request_header_max_size 10 KB
- request_body_max_size 1 MB
设置了Http请求的包头和数据大小。
- request_body_max_size 0
这里,请求所返回的数据大小为0,意义为没有任何限制。
- connect_timeout 180 seconds
- read_timeout 15 minutes
- request_timeout 20 seconds
上面几项是代理服务几个超时设置,这里使用配置文件默认值。
下面是访问控制列表一些配置,这里对访问的IP地址,域名,访问类型极其访问代理的权限做的限制:
- acl acldomain dstdomain .ynst.net.cn
- acl acceleratedport port 80
- acl acceleratedhost dst 202.98.187.17/255.255.255.255
- acl aclprotocol proto HTTP FTP
- acl aclmethod method GET POST
- acl aclauth proxy_auth required
(注:这里使用required表示任何passwd文件中存在的合法用户才授予访问权限。)
- acl aclsnmp snmp_community secrect
MRTG可以使用snmp协议检测此代理服务运行状态。
- acl aclconn maxconn 20
可并行连接的最大数量。
启用定义的访问控制列表
- http_access allow manager localhost
- http_access deny manager
- http_access allow aclauth
- http_access allow acceleratedport acceleratedhost
- http_access deny all
下面为缓存管理设置
- cache_mgr admin@ynst.net.cn
设置缓存管理者的接受邮件地址。
- cache_effective_user squidusr
- cache_effective_group squidgrp
设置执行Squid的用户和用户组。
{注:设置用户和用户组及其权限修改方法如下:
- #groupadd squidgrp
- #useradd –g squidgrp –d /home/squidusr squidusr
修改log日志权限属性,使squidusr有写权限。
- #chown squidusr /var/log/squid
- #chgrp squidgrp /var/log/squid
- #chown squidusr /var/log/squid/*.log
- #chown squidgrp /var/log/squid/*.log
- }
使用MRTG进行squid流量的限制-配置lSquid介绍到这里了,接下来一节是其他的配置,有Http服务加速代理、延迟队列池进行配置、运行Squid代理服务、lMRTG配置
【编辑推荐】