文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Squid 学习笔记

Squid 学习笔记

时间:2010-04-10  来源:simple_jim

         Squid代理服务器的作用:   》通过缓存的方式为用户提供web访问加速 》对用户的web访问进行过滤控制 如图所示:       普通代理服务: 》即标准的,传统的代理服务 》需要客户机在浏览器中指定代理服务器的地址.端口 透明代理服务: 》使用于企业网关主机(共享接入Internet)中 》客户机不需要指定代理服务器的地址,端口信息等 》需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理 反向代理服务: 》为Internet用户访问企业Web站点提供缓存加速       关于Squid的一些基本知识: 软件包名:squid-2.6.STABLE6 服务名:squid 主程序:/usr/sbin/squid 配置目录:/etc/squid 主配置文件:/erc/squid/squid.conf 默认监听端口:TCP  3128 默认访问日志文件:/var/log/suqid/access.log 关于Squid的命令 #squid   -z   (初始化squid缓存目录) #squid   -D   (启动squid服务) #squid   -k    parse  测试 #squid   -d   后跟一个数字跟调试的级别 #netstat  -tnlp 查看端口3128端口是否开了 #tail  -f  /var/log/squid/access_log  -f   表示跟踪显示,不退,出,滚动显示,一直在监控。 也可以在浏览器中设置代理服务 #export   HTTP_PROXY=  指向网关和代理端口 #echo  $HTTP_PROXY 在浏览器中取消代理 #unset  HTTP_PROXY #echo  $HTTP_PROXY Squid可以基于内容来进行过滤 #grep  -v   “^#”   squid.conf  | cat  -s #cat –s 压缩空白行     主配置文件squid.conf的常用配置选项 http_port: 3128                     (定义端口 access_log  /var/log/squid/access.log   squid  (定义日志位置 visible_hostname  proxy.test.com  ( 定义squid服务器名字 cache_mem   64M             (定义内存大小) maximum_object_size  4096 KB (定义最大缓存的文件大小 replay_body_max_size  10240000  allow  all (定义最大的可以访问的文件大小 cache_dir  ufs   /var/spool/squid  100 16 256 (其中ufs定义缓存数据的存储格式,100定义了为缓存目录分配的磁盘空间(MB),16 (定义缓存空间的以及子目录个数)256(定义了缓存空间的二级子目录个数) cache_mgr用来定义你的服务器管理员的邮箱 如果想将错误提示信息更改为中文提示,需要添加一下一行                                                error_directory   /usr/share/squid/errors/Simplify_Chinese     replay_body_max_size  10240000  allow  all 定义最大的可以访问的文件大小 http_access allow  all 表示允许所用用户访问。 acl是自上而下逐行匹配,跟iptables一样 (要先定义ACL选项,然后再写规则。)       ACL访问控制   ACL有aclname acltype sting/file 组成 aclname 定义了cal的名字 acltype定义了acl的类型 string 定义了匹配的字符串 file  用一个文教来包含字符串 例子:acl   mynetwork   src   192.168.0.0/24 acltype基于什么样的类型 常见的acl列表类型:最常用的就是src src dst port srcdomain dstdomain time maxconn url_regex urlpath_regex   如果跟多个ACL,要取它们的交集 如:acl  mynetwork src 192.168.10.0/24     acl  myserver dst 192.168.0.254/32     http_access allow mynetwork  !myserver  (!取反) (表示允许来源mynetwork的访问,但是不允许他访问myserver。)   url_regex  针对完整的URL做正则表达式匹配 如:定义以pdf结尾的都不允许访问 acl  notpdf   url_regex  -i  ^http.*\.pdf$ http_access  allow mynetwork !noetpdf   urlpath_regex不是针对完整的URL做匹配 如:定义只要是以chm结尾的不允许访问 acl  notchm   urlpath_regex    .*\.chm$  http_access allow mynetwork !notchm     可以做基于协议的匹配 定义proto   可以基于浏览器的匹配 定义browser   可以基于http连接数控制 定义maxconn   可以基于域名做控制 定义srcdomain 定义 dstdomain   可以基于时间来控制 定义time   可以让两个acl列表名字相同,只要它们的类型相同,这时候会取它们的并集: acl worktime time 10:00-23.59 acl worktime time 00:00-5.59 http_access allow mynetwork !worktime (这个意思就是晚上10点到早上6点不许上网)   关于ACL一些定义示例: acl LAN1 src 192.168.10.0/24 acl PC1 src 192.168.10.12/32 acl Blk_Domain dstdomain .qq.com acl Work_Hours time MTWHF 08:30-17:30 acl Max20_Conn maxconn 20 acl Blk_URL url_regex -i ^rtsp:// ^mms:// acl Blk_Words urlpath_regex -i sex adult acl RealFile urlpath_regex -i \.rmvb$ \.rm$ 根据已经定义的部分ACL列表进行访问控制 http_access deny LAN1 Blk_URL http_access deny LAN1 Blk_Words http_access deny PC1 RealFile http_access deny PC1 Max20_Conn http_access allow LAN1 Work_Hours 访问控制规则的匹配顺序 没有设置任何规则时   —— 将拒绝所有客户端的访问请求   有规则但找不到相匹配的项时   —— 将采用与最后一条规则相反的权限,即如果最后一条规则是allow,那么就拒绝客户端的请求,否则允许该请求  
相关阅读 更多 +
排行榜 更多 +
射击吧

射击吧

飞行射击 下载
爆射护卫队

爆射护卫队

飞行射击 下载
行尸出笼

行尸出笼

飞行射击 下载