最新消息:

【分享】Linux下的Squid的配置详解

应用服务 摘星怪 2450浏览 0评论

一. 代理服务简介

1. 什么是Squid代理服务器(Proxy Server)

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。
 
目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议.
 
1.1 常用反向代理及缓存软件对比:
软件名称 性能 功能 过滤规则配置
Squid 不能多核是硬伤,磁盘缓存容量有优势,性能中等 多,支持ACL角色控制,也支持ICP缓存协议 支持外部规则文件读取及热加载,支持热启动
Varnish 多核支持,内存缓存,性能强 够用,不支持集群,支持后端存活检查 不支持外部文件读取,需要转义,支持热启动
Nginx 多核支持,支持代理插件,性能较强 多,通过插件可以充当多角色服务器 不支持外部文件读取,需要转义,支持热启动
ATS 多核支持,磁盘/内存缓存,性能强 够用,支持插件开发,也支持ICP协议 支持外部规则文件读取及热加载,支持热启动,但缺乏文档
HAProxy 多核支持,无缓存,HTTP头支持语法操作,性能强 少,只专注HTTP头部解析和转发功能,支持ACL角色控制,支持后端存活检查 支持外部规则文件读取及热加载,支持热启动,支持会话粘滞和长连接
1.2 生产中如何选择squid服务的版本
squid 2.5 :不支持epoll,内存管理也不完善
squid 2.6~2.7:建议使用2.7,性能不错,2.6只支持部分http1.1
squid 3.0:不建议使用,因为使用c++全部重写了,现在性能不如2.6和2.7
1.3 Web缓存相关概念详解及解决方案思路
cache命中:
  •  WEB缓存典型的cache命中率在30%到60%之间
提升cache命中率:
  • 1.apache nginx可以设置expries,cache-control缓存头
  • 2.动静分离,静态化,对静态走CDN
  • 3.Mysql cache让缓存靠前
  • 4.解决4xx,5xx错误页面,和死链
  • 5.动态内容不走缓存
cache丢失:
  • 1.cache server 第一次访问一个新资源时候,就会产生一个cache丢失
    解决办法:后端生成数据后,统一推到前端cache server。即预热或者预取
  • 2.存储空间满后者对象自身过期, cache server 会清除这些缓存对象以释放空间给新对象
解决办法:
  • 加大内存或者磁盘  
  • 过期时间长一些 
  • 缓存参数设置大一些
  • 分资源缓存,(分拆服务器,acl正则匹配抛给不同的pools)
cache确认:
  • 保证squid不对访问的用户返回过期数据

2. 代理服务器的硬件需求

代理服务器对于硬件的要求相当的高!因为我们架设代理服务器的目的就是希望能够加快网络的传输速度因此,虽然代理服务器几乎在任何的 Linux 系统上面都能跑,但是代理服务器最好还是有较高的硬件配置:
  • CPU 足够好; 
  • RAM 足够大,这也是很重要的一个硬件参数 
  • Hard Disk 最好能用 SCSI 接口的(最好sas盘替代sata盘)),因为速度与稳定度都比较好!如果不能的话,那么 IDE 接口的硬盘由于目前速度也越来越快,所以使用 IDE 也没有问题,但是最好是『多块硬盘』的架构,例如我总共需要 30 GB 的硬盘空间,那么最好是 10 GB 的硬盘三块这样的架构较佳。
最好在架设代理服务器时,将整体主机的规划做好,并且让代理服务器主机的服务单纯一点,最好只负责代理服务,每颗硬盘的容量不需要太大,此外,最好将硬盘分割一下,一个分区在 2~4 GB 之间即可,因为分太大的话资料的搜寻耗费时间较长,但是分区太小又可能造成空间的浪费
 
内存与硬盘关联:每G磁盘缓存空间需要32M内存—>512M内存系统可以支持16G磁盘缓存
 
cache 是放置在某个目录下的,而最好一个目录底下就是独立的一个partition 。此外,由于 cache 所在的硬盘常常会有资料的存取,因此可能此一硬盘的损耗率会比较大,所以这个 cache 所在的硬盘最好不要跟重要数据文件,例如 /, /etc, /usr, /home 等等重要的系统文件放在一起! 
 
也由于 cache 所在的硬盘资料存取太密集了,所以,硬盘的选择上面需要 
  • 转速不能太低; 
  • 磁头的机械臂需要可以忍受频繁的动作;
  • 发热量不可太大,或者可以考虑加装硬盘用风扇。
网络卡与网络周边最好使用 GBytes 的网络卡

3. 使用squid的好处

  • 快速响应,减少网络阻塞,Squid将远程Internet对象保存为本地拷贝。当本地用户再次访问这些对象时,Squid可以直接快速地提供对这些对象的访问,而不必再次占用带宽访问远程服务器上的对象。
  • 增强访问控制,提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制
  • squid可以工作在普通代理模式、透明代理模式各反向代理模式

4. Squid的3种代理方式

4.1.普通代理模式
一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。
 
但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。如下图:
20170824143253
4.2透明代理模式
透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。
4.3.反向代理模式
反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载,又称HTTP加速器。反向代理服务器承担了对原始WEB服务器的静态页面的请求,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载.
 
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器。只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。
 
因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
 
多个squid代理服务器可以通过icp协议相互沟通,形成树形层次关系(父代理、兄弟代理、子代理),构建代理服务器群。
  • 1.用于放置在Web服务器的前面—>反向代理
  • 2.用于放置在企业内部关键出网位置或者某些共享网络的前端—>正向代理(普通代理,透明代理)
  • 3.控制员工上网行为,过滤网络流量和访问数据
如下图:
20170824143355

二. 普通代理模式

1. 配置文件
#vi /etc/squid/squid.conf
 
#http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128
http_port 3128
icp_port 3130
 
#缓存目录的设置,可以设置多个缓存目录,语法为:<cache_dir> <aufs|ufs> <目录所在> <MBytes大小> <dir1> <dir2>
cache_dir ufs /var/spool/squid 1000 64 1024 
 
#下面是关于日志文件的放置目录与文件名!
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
 
#关闭认证机制,有些版本的 squid 会自动的加入代理认证机制,而普通情况下是不需要的,故找到包括auth_param的行,给它们加上注释
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
 
#设置squid用户及用户组、管理员账号
cache_effective_user squid
cache_effective_group squid 
cache_mgr youraccount@your.e.mail
 
# 与内存有关的配置:因为我的系统内存很小,所以只给 8 MB!如果您的物理内存很大的情况下,例如 512 MB,可以考虑加大到 64 或 128 MB。
cache_mem 128 MB
 
# 与磁盘容量有关的配置(注:下列的 90 与 95 是百分比 ),如果您的 cache_dir 所在磁盘很大时,可以考虑将 4096 改成 32768 KB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
 
# 与内存保存资料有关的配置
maximum_object_size_in_memory 8 KB
 
#定义acl(访问控制列表), 语法为:acl<acl> <acl名称> <acl类型> <配置的内容>
#黑体为用户自定义部分
 
acl All src 0/0 
acl Manager proto cache_object 
acl Localhost src 127.0.0.1/32 
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535 
acl SSL_ports 443 563 
acl CONNECT method CONNECT 
acl MyNetwork src 192.168.0.0/16
 
#利用前面定义的acl,定义访问控制规则
http_access allow Manager Localhost
http_access deny Manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow MyNetwork
http_access deny All
 
#定义与其它代理服务器的关系,语法: <cache_peer> <主机名称> <类别> <http_port> <icp_port> <其它参数>
cache_peer 192.168.60.6 parent 4480 7 no-query default
 
#设置与其它代理服务器的关系:
# <cache_peer_access> <上层 Proxy > <allow|deny> <acl名称>
#cache_peer_access 192.168.60.6 allow aclxxx 
#cache_peer_access 192.168.60.6 deny !aclxxx
 
coredump_dir /var/spool/squid
 
2. 激活squid
1). 在开启squid之前,你应该验证其配置文件是否正确。运行如下命令即可:
 
# squid -k parse
 
假如你看不到输出,配置文件有效,你能继续后面的步骤。然而,如果配置文件包含错误,squid会告诉你:
 
2). 初始化cache目录.即建立缓存目录的存储格式
 
只需在第一次启动squid服务之前执行(在初次运行squid之前,或者无论何时你增加了新的cache_dir,你必须初始化cache目录。)
 
# squid -z 
 
cache目录初始化可能花费一些时间,依赖于cache目录的大小和数量,以及磁盘驱动器的速度。假如你想观察这个过程,请使用-X选项:
 
# squid -zX
 
3). 启动squid服务
 
# service squid start
 
假定squid安装在/usr/local/squid目录下,也可以
 
# /usr/local/squid/sbin/squid -sD
 
4). 停止squid
 
最安全的停止squid的方法是使用squid -k shutdown命令:
 
# squid -k shutdown
 
5). 重配置运行中的squid进程
 
在你了解了更多关于squid的知识后,你会发现对squid.conf文件做了许多改动。为了让新设置生效,你可以关闭和重启squid,或者在squid运行时,重配置它。
 
重配置运行中的squid最好的方法是使用squid -k reconfigure命令:
 
# squid -k reconfigure
 
6). 滚动日志文件
 
除非你在squid.conf里禁止,squid会写大量的日志文件。你必须周期性的滚动日志文件,以阻止它们变得太大。squid将大量的重要信息写入日志,假如写不进去了,squid会发生错误并退出。为了合理控制磁盘空间消耗,在cron里使用如下命令:
 
%squid -k rotate
 
例如,如下任务接口在每天的早上4点滚动日志:
 
0 4 * * * /usr/local/squid/sbin/squid -k rotate
 
该命令做两件事。首先,它关闭当前打开的日志文件。然后,通过在文件名后加数字扩展名,它重命名cache.log,store.log,和 access.log。例如,cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续,滚动到 logfile_rotate选项指定的值。
 
squid仅仅保存每个日志文件的最后logfile_rotate版本。更老的版本在重命名过程中被删除。假如你想保存更多的拷贝,你需要增加logfile_rotate限制,或者编写脚本用于将日志文件移动到其他位置。 请见13.7章关于滚动日志的其他信息。
3. 访问控制示例
1) 禁止访问某个网站
 
在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
 
acl sina dstdomain .sina.com.cn .sina.com
http_access deny sina 
 
 
acl sina dst 58.63.236.26 58.63.236.27 58.63.236.28 58.63.236.29 58.63.236.30 58.63.236.31 58.63.236.32 58.63.236.33 58.63.236.34 58.63.236.35 58.63.236.36 58.63.236.37 58.63.236.38 58.63.236.39 58.63.236.49 58.63.236.50
http_access deny sina
 
 
acl sina dst www.sina.com.cn
http_access deny sina
 
2) 禁止来自某些IP地址的访问
 
在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
 
acl zhang src 192.168.63.6/32
http_access deny zhang 
 
3) 禁止在某些时段访问
 
acl Working_hours MTWHF 08:00-17:00
http_access allow Working_hours
http_access deny !Working_hours
 
4) 禁止某个代理客户建立过多连接 
acl OverConnLimit maxconn 4 
http_access deny OverConnLimit

三. 透明代理

让我们现在来想象一个联机状态,就是你有一整组内部网络,而这个内部网络都是透过 NAT 主机联机出去的。那么我们谈过,就是在一个内部网很大的情况下,使用 Proxy 是一个很不错的选择,因为至少他可以减轻带宽负荷!不过,遗憾的是,架设 Proxy 的时候,也要使用者在浏览器上面设置代理!那么有没有办法在『使用者不需要在浏览器上面进行任何配置,就可以实现以 Proxy 帮助使用者联接Internet?当然有啦!那就是 Transparent Proxy 啦!也有人翻译成『透明代理服务器』。
 
其原理是:当使用者经过 NAT 服务器来联机进入 Internet 时,假如使用的 Internet 协议为 80 (也就是 WWW) ,那么就将这个要求交给 Proxy 来工作,以达到代理服务器的功能。
 
呵呵!也就是说,当使用者是经过 NAT 主机联机出去时,只要让 NAT 主机发现『咦!你是要去读取 www 的资料对吧!好!那么这个动作由 Proxy 主机帮你搞定!』如此一来,使用者根本就不需要在浏览器上面配置 Proxy 的相关资料,因为这个动作是『由 NAT 主机自己决定的』,所以只要在 NAT 主机上面配置妥当即可,使用者不必配置任何资料呢!那么要怎么进行呢?只要两个步骤即可: 
1. 配置 Proxy 主机: 
1) 如果是squid 2.5,需要更改squid配置文件中的下列指令:
 
[root@test root]# vi /etc/squid/squid.conf 
! 
httpd_accel_host virtual # 告诉web加速器,针对所有的URL
 
httpd_accel_port 80 # 告诉web加速器,要监听的端口是80!
 
httpd_accel_with_proxy on # 这个很重要!因为配置 httpd_accel_host 之后, cache 的配置会自动被终止,必须要加上这个配置为 on 之后,才能提供 cache 的功能!
httpd_accel_uses_host_header on 
 
2) 如果是squid 2.6,则只需要更改squid配置文件中的一个指令:
 
http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服务器的地址
 
[root@test root]# squid -k reconfigure 
2. 配置 NAT 主机的 port map :
再来让我们到 NAT 主机上面看看先,因为需要将 80 这个 port 交给 Proxy 的 3128 来帮忙协助,所以你的防火墙 script 必须要加入这一段才行: 
 
#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 –dport 80 -j REDIRECT –to-ports 3128
 
注意一下,那个 eth0 是『你的 NAT 对内的网卡』,至于 192.168.62.0/24 则是你的内部网域,请依照你的主机实际状态来配置!这样一来,您的 client 端完全不需要进行任何的配置,立刻就可以使用 Proxy 的好处啰
 
3. 配置转发
#echo 1 > /proc/sys/net/ipv4/ip_forward
 
或:
 
#vi /etc/sysctl.conf
 
net_ipv4_forword=1
 
#vi /etc/sysconfig/network
 
FORWARD_IPV4=yes
 
#service network restart
4. 配置客户端
将另外一台计算机作为客户机进行测试,需要将网关、首选DNS服务器指向设置透明代理的服务器,清除客户端的浏览器代理设置。

四. 反向代理

代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。
 
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图所示:
 
20170824151846
 
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。
 
20170824152701
 
当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
1. Squid反向代理单个后台WEB服务器
1) 如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
 
http_port 80 #squid监听的端口
httpd_accel_host 172.16.250.250 #内部WEB服务器的IP地址
httpd_accel_port 80 #WEB服务的端口号
httpd_accel_single_host on #转发没有缓冲的请求到一台单独的机器,squid被设置成仅对单一的web服务器作反向代理
httpd_accel_with_proxy on #如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将此设为on,默认是off
httpd_accel_uses_host_header off #在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。 
 
2) 如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下: 
 
http_port 80 #squid监听的端口
httpd_accel_host localhost #内部WEB服务器的IP地址
httpd_accel_port 81 #WEB服务器的端口号
httpd_accel_single_host on
httpd_accel_with_proxy on 
httpd_accel_uses_host_header off
2.Squid反向代理多个后台WEB服务器
我们可以用Squid反向代理多个后台WEB服务器。例如:我们可以配置squid同时反向代理www.abc.com, www.xyz.com, www.lmn.com三个后台WEB服务器,示意图如下:
20170825140330
 
Squid的配置如下:
 
httpd_accel_host virtual
httpd_accel_port 80 
httpd_accel_single_host off 
httpd_accel_uses_host_header on
 
(注意:编译Squid时需激活Internal DNS选项)
 
然后设置设置反响代理需要的域名解析(Internet用户通过这里解析三个网站的域名)如下:
 
www.abc.com 202.102.240.74
www.xyz.com 202.102.240.74
www.lmn.com 202.102.240.74
 
使三个域名都指向反向代理服务器的IP地址202.102.240.74。
 
下面设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。
 
使用内部DNS服务器的资源记录如下:
www.abc.com IN A 192.168.62.2
www.xyz.com IN A 192.168.62.3
www.lmn.com IN A 192.168.62.4
 
如果使用/etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目: 
192.168.62.2 www.abc.com
192.168.62.3 www.xyz.com
192.168.62.4 www.lmn.com 
 
结论:通过本文中的论述和相关实例,可以看出,反向代理方式不单是一种WEB服务器加速器,而且使也一种对外提供Web发布时使用的有效的防火墙技术,使用它不但能节约紧缺的IP地址资源,加速WEB服务器的访问速度,而且能够保护WEB主机,因此能够适应多种应用场合。

五. 故障处理

1. 如果在启动squid时出现下述信息:
% squid -Nd1 FATAL: Could not determine fully qualified hostname. Please set ‘visible_hostname’
 
则需要在squid的配置文件中设置visible_hostname,如:
 
visible_hostname squid.packet-pushers.net
 
2. 如果在配置squid代理后,客户访问出现以下提示:
ERROR
The requested URL could not be retrieved
 
While trying to retrieve the URL: http://…/
 
可能需要在squid配置文件中加入以下指令:
always_direct allow all

六. 配置范例

范例一:
http_port 3128
icp_port 0
 
cache_mem 64 MB
cache_swap_low 80
cache_swap_high 85
 
maximum_object_size 32000 KB
 
cache_dir ufs /var/spool/squid 500 64 1024
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
 
pid_filename /var/run/squid.pid
 
acl all src 0.0.0.0/0.0.0.0
acl alldst dst 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl 163 url_regex 163.com
acl sina url_regex sina.com.cn
acl myclient src 192.168.6.0/24
 
http_access allow 163
http_access allow sina
http_access deny !sina
http_access deny !163
 
cache_peer 192.168.1.8 parent 8080 7 no-query default
 
cache_effective_user squid
cache_effective_group squid
cache_mgr root@net03.org
coredump_dir /var/spool/squid
范例二:
http_port 3128
icp_port 0
cache_mem 64 MB
cache_swap_low 80
cache_swap_high 85
maximum_object_size 32000 KB
cache_dir ufs /var/spool/squid 500 64 1024
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl myclient src 192.168.6.0/24
acl 163 url_regex 163.com
acl sina url_regex sina.com.cn
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
 
cache_peer 192.168.1.8 parent 8080 7 no-query default
 
acl ip_acl src 192.168.6.0/24
acl time_acl time M T W H F A S 9:00-19:00
http_access allow ip_acl time_acl
 
cache_peer_access 192.168.1.8 allow 163
cache_peer_access 192.168.1.8 deny !163
cache_peer_access 192.168.1.8 allow sina
cache_peer_access 192.168.1.8 deny !sina
 
cache_effective_user squid
cache_effective_group squid
cache_mgr root@net03.org
coredump_dir /var/spool/squid
 
#acl pl800_arp arp 00:08:c7:9f:34:41
#http_access allow pl800_arp

转载请注明:架构迷 » 【分享】Linux下的Squid的配置详解

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址