请教linux squidd远程管理问题

用户名:魏昊t
文章数:44
访问量:11355
注册日期:
阅读量:1297
阅读量:3317
阅读量:582920
阅读量:467884
51CTO推荐博文
操作环境:(Redh5.8)Client:192.168.8.70 & & & & &(如图:机器为8.70)Squid:192.168.8.71(eth0) & (如图:机器为8.71)& & & 172.16.1.16(eth1) & (如图: 机器为8.72)Web: &172.16.1.17图:(注:实验过程中涉及的dns相关内容没有做)Squid的主要功能:1.支持HTTP,FTP协议2.采用层次化缓存结构3.支持代理SSL4.实现了ICP(Internet缓存协议,HTCP(超文本缓存协议)等)5.支持透明代理6.支持WCCP(Web缓存通信协议)7.支持丰富的访问控制列表功能8.支持HTTP加速功能,实现反向代理9.支持SNMP10.支持缓存DNS查询&一.正向代理(标准代理)&&1.&一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页 面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。2. 访问过程(如上图)@1.客户端使用某一端口连接代理服务器3128端口,请求web页面(连接的网卡为eth0)@2.代理服务器向DNS请求得到相应的IP地址,然后,代理服务器使用某一端口,向该IP地址的80端口发起web连接请求,请求web页面。(连接的网卡为eht1)@3.~@5收到响应的web页面后,代理服务器把该数据传送给客户端。并查看自己有没有缓存,若没有缓存一份@6.~@7.当客户端再次访问时,直接通过缓存返给客户端信息3.具体配置(1)装包[root@tx2 ~]# yum install -y squid(2)开启包转发[root@tx2 ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 1&(3)修改配置文件[root@tx2 ~]# vim /etc/squid/squid.conf637 &http_access allow all & & & & //给所有的客户端开启代理服务921 &http_port 192.168.8.71:3128 & & //设置squid监听的端口//192.168.8.71的ip是squid与客户端链接的网卡的ip地址。1579 cache_mem 8 MB & & 设定squid占用的物理内存,一般为物理内存的1/3(代表squid能使用多少内存,如果你的内存足够可以调的稍微大一些)&1786 cache_dir ufs /var/spool/squid 100 16 256 &设定缓存的位置& & & &@1.ufs &:同步,有请求过来先把得到的数据写入磁盘再处理请求& & & &@2.aufs :异步,先响应请求再把数据写入磁盘& & & &@3.100 &:M,缓存的数据大小& & & &@4.16 & :1级子目录的数量& & & &@5.256 &:2级子目录的数量1842 & &cache_swap_low 90 & 最低“水位线“//95:代表cache 占用swap的空间最多是百分之95,如果大于百分之95,squid会自动删除之前保存的数据&1843 cache_swap_high 95 &最高“水位线“//90: 代表删除的时候还是会保存最新的百分之90&2974 cache_effective_user squid &通知系统是以squid用户的身份去执行&4. 配置web端的http服务&#yum install -y httpd#cd /var//ww/html#echo “helo tx” & index.html#/etc/init.d/httpd start&5. 配置client端的浏览器@1.点击edit,然后点击edit下的Preferences@2.点击Advanced-----&Network--------&Settings@3.如图所示配置完成&6.client端测试二.Squid的透明代理&1.透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代 理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则 向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。& 2访问过程@1.客户端向DNS请求,得到相应的IP地址。然后,客户端使用某一端口,向该IP地址的80端口发起web连接请求,请求web页面。@2~@3.当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口3128。于是,透明代理服务器用某一端口发起web连接请求,请求web页面。@4~@5收到响应的web页面后,代理服务器把该数据传送给客户端。并查看自己有没有缓存,若没有缓存一份@6.~@7.当客户端再次访问时,直接通过缓存返给客户端信息&3.具体配置(1)修改配置文件[root@tx2 ~]# vim /etc/squid/squid.confhttp_port 192.168.8.71:3128 transparent(2)配置防火墙规则[root@tx2 ~]# iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128//所有192.168.0.0这个网段访问squid的80端口,都由防火墙转发到3128的squid服务端口&[root@tx2 ~]# iptables -t nat -LChain PREROUTING (policy ACCEPT)target & & prot opt source & & & & & & & destination & & & &REDIRECT & tcp &-- &192.168.0.0/24 & & & anywhere & & & & & &tcp dpt:http redir ports 3128&Chain POSTROUTING (policy ACCEPT)target & & prot opt source & & & & & & & destination & & & &&Chain OUTPUT (policy ACCEPT)target & & prot opt source & & & & & & & destination & & & &[root@tx2 ~]# iptables -t nat -F[root@tx2 ~]# service squid restartStopping squid: ................ & & & & & & & & & & & & & [ &OK &]Starting squid: . & & & & & & & & & & & & & & & & & & & & &[ &OK &](3)客户端取消代理(4)配置客户端网观[root@tx1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0添加GATEWAY=“squid的ip”[root@tx1 ~]# /etc/init.d/network restart(5)测试三.反向代理(web加速)& &&1.反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页 面的请求,防止原始服务器过载。2.访问过程@1.客户端通过浏览器向DNS服务器发送请求,由客户所在地的DNS服务器解析IP地址,并将结果返回给用户。@2.客户收到DNS返回的服务器IP地址,重新向DNS服务器指向的IP地址发送访问请求。&@3.squid 服务器接收到用户的请求后,查询自身缓存中是否有用户请求内容,有则直接发送给客户端@4. 有则通过内部DNS轮询查询空闲服务器,并将客户请求发送到 该服务器,在获取到用户数据并返回给用户的同时保留一份在自己本身的缓存当中。&在用户看来,自己访问的是这个服务器,实际上真 正的WEB服务器为SQUID缓存后面的服务器或者服务器集群,通过外部DNS做CNAME转向,将用户请求转发到内部真正的web服务器上去。&3.具体配置(1)[root@tx2 ~]# vim /etc/squid/squid.conf923 http_port 80 transparent924 cache_peer 172.16.1.17 parent 80 0 originserver no-query name= wwworiginserver 源点服务器no-query & & 不询问name=www & & 用来区分相似的查询(其他选项不变)(2)测试四.访问控制(ACL)1.ACL元素语法定义如下:acl aclname acltype string1acl aclname acltype "file"//acltype可以是(src、dst、srcdomain、dstdomain、url_regex、urlpath_regex、time、port、proto、method)&(1) src:源地址。定义如下:acl aclname src ip-address/netmask ... 客户ip地址acl:aclname src addr1-addr2/netmask ... 地址范围&(2)dst:目标地址acl aclname dst ip-address/netmask ...&(3)srcdomain:客户所属的域acl aclname
...&(4)dstdomain:请求服务器所属的域acl aclname
...&(5)time:访问时间acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]1 S:指代Sunday2 M:指代Monday3 T:指代Tuesday4 W:指代Wednesday5 H:指代Thursday6 F:指代Friday7 A:指代Saturday&(6)port:访问端口。可以指定多个端口acl aclname port 80 70 21 ...acl aclname port 0-1024 ... 指定一个端口范围&(7)proto:使用协议acl aclname proto HTTP FTP ...&(8)method:请求方法acl aclname method GET POST ...&(9)url_regex:URL规则表达式匹配acl aclname url_regex[-i] pattern&(10)urlpath_regex:URL-path规则表达式匹配acl aclname urlpath_regex[-i] pattern&2.http_access访问控制列表根据访问控制列表允许或禁止某一类用户访问。最后的条目设为“deny all”或“allow all”来避免安全性隐患。http_access Action声明1 AND 声明2 AND多个,http_access声明间用或运算连接,但每个访问条目的元素间用与运算连接,列表中的规则总是遵循由上而下的顺序。3.实例应用(1)禁止IP地址为192.168.8.200的客户机上网acl client src 172.16.1.2http_access deny client&(2)禁止网段10-50上网&acl client src 172.16.1.10-172.16.1.50/32http_access deny client&(3)拒绝访问web的ipacl client dst 192.168.1.2http_access deny client&(4)限制URL以 某些内容 开头acl client url_regex indexhttp_access deny client&(5)限制URL 以 某些内容 结尾&acl client urlpath_regex \.htmlhttp_access deny client&(6)限制时间段acl client time MTWHFA 9:00-18:00http_access deny client&(7)限制443端口上网acl http port 443http_access deny http&(8)限制用户并发连接数为:5acl clientsrc 172.16.1.15acl conn5 max 5http_access deny client conn5&(9)禁止下载*.mp3$ *.exe$ *.zip$ *.rar$ *.doc$类型的文件acl client &urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ \.doc$http_access deny client注:这些访问控制可以根据实际情况加到上面的三种代理方式中,访问控制要写的有意义
了这篇文章
类别:未分类┆阅读(0)┆评论(0)留下脚印,证明你来过。 由于近期工作比较忙,导致博客更新速度奇慢,希望大家不要介意,我会抽时间更新一些文章,希望大家喜欢。
本站文章部分为网络收集整理,若侵犯了您的版权请告知!
成功因为坚持,失败因为放弃!
日志总数:466 篇评论总数:1913 个标签数量:529 个链接总数:35 个建站日期:运行天数:3176最后更新:帐号密码
支持博客发展,爷来打赏你!(微信)最新文章随机文章热门文章
留言光荣榜最新评论squid的简单介绍
squid的概念
squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。
squid代理的作用
通过缓存的方式为用户提供Web访问加速
对用户的Web访问进行过滤控制
当代理服务器中有客户端需要的数据时:
a. 客户端向代理服务器发送数据请求;
b. 代理服务器检查自己的数据缓存;
c. 代理服务器在缓存中找到了用户想要的数据,取出数据;
d. 代理服务器将从缓存中取得的数据返回给客户端。
当代理服务器中没有客户端需要的数据时:
客户端向代理服务器发送数据请求;
代理服务器检查自己的数据缓存;
代理服务器在缓存中没有找到用户想要的数据;
代理服务器向Internet 上的远端服务器发送数据请求;
远端服务器响应,返回相应的数据;
代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。
Squid代理服务器工作在TCP/IP应用层
Squid各种代理的定义
标准的代理缓冲服务器
一个标准的代理缓冲服务被用于缓存静态的网页到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指名代理服务器的IP地址和端口号。客户端上网时,每次都把请求发送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发送给客户端浏览器。
透明代理缓冲服务器
透明代理缓冲服务器和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因此不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。
反向代理缓冲器
反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。
正向代理与反向代理的区别
正向代理:对于原始服务器而言,就是客户端的代言人
反向代理:对于客户端而言,就像是原始服务器
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。
反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
Squid主要组成部分
服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配置文件:/etc/squid/squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log
squid常用配置选项
/etc/squid/squid.conf
http_port 3128
(还可以只监听一个IP http_port 192.168.0.1:3128)
cache_mem 64MB
#缓存占内存大小
maximum_object_size 4096KB
#最大缓存块
reply_body_max_size
1024000 allow all
#限定下载文件大小
access_log /var/log/squid/access.log
#访问日志存放的地方
visible_hostname
proxy.test.xom
#可见的主机名
cache_dir ufs /var/spool/squid
100 16 256
#ufs:缓存数据的存储格式
#/var/spool/squid
#100:缓存目录占磁盘空间大小(M)
#16:缓存空间一级子目录个数
#256:缓存空间二级子目录个数
#定义管理员邮箱
http_access deny all
squid中的访问控制
使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。squid访问控制有两个要素:ACL元素和访问列表。访问列表可以允许或拒绝某些用户对此服务的访问。
ACL元素类型
src:源地址(即客户机IP地址)
dst:目标地址(即服务器IP地址)
srcdomain:源名称(即客户机名称)
dstdomain:目标名称(即服务器名称)
time:一天中的时刻和一周内的一天
url_regex:URL规则表达式匹配
urlpath_regex:URL-path规则表达式匹配,略去协议和主机名
proxy_auth:通过外部程序进行用户验证
maxconn:单一IP的最大连接数
为了使用控制功能,必须先设置ACL规则并应用。ACL声明的格式如下:
acl acl_element_name type_of_acl_element values_to_acl
acl_element_name 可以是任一个在ACL中定义的名称
任何两个ACL元素不能用相同的名字
每个ACL由列表值组成。当进行匹配检测的时候,多个值由逻辑或运算连接;换言之,即任一ACL元素的值被匹配,则这个ACL元素即被匹配。
并不是所有ACL元素都能使用访问列表中的全部类型
不同的ACL元素写在不同行中,squid将把他们组合在一个列表中
我们可以使用许多不同的访问条目。下面是我们常用的几个:
http_access:允许HTTP访问
no_cache:定义对缓存请求的响应。
访问列表的规则由一些类似'allow'或‘deny’的关键字构成,用以允许或拒绝向特定或一组ACL元素提供服务。
一个访问列表可以由多条规则组成
如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。
一个访问条目中所有元素将用逻辑与运算连接
http_access Action 声明1 AND 声明2 AND 声明 OR.
http_access Action 声明3
多个http_accesss声明间用或运算连接,但每个访问条目的元素间用与运算连接。
列表中的规则总是遵循由上而下的顺序
这些规则按照他们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配就立即结束。
Squid.conf配置文件详解
#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软件
#携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。
acl all src 0.0.0.0/0.0.0.0
#允许所有IP访问
acl manager proto http
#manager url协议为http
acl localhost src 127.0.0.1/255.255.255.255
#允午本机IP
acl to_localhost dst 127.0.0.1
#允午目的地址为本机IP
acl Safe_ports port 80
# 允许安全更新的端口为80
acl CONNECT method CONNECT
#请求方法以CONNECT
http_access allow all
#允许所有人使用该代理.因为这里是代理加速web服务器
http_reply_access allow all
#允许所有客户端使用该代理
acl OverConnLimit maxconn 16
#限制每个IP最大允许16个连接,防止攻击
http_access deny OverConnLimit
icp_access deny all
#禁止从邻居服务器缓冲内发送和接收ICP请求.
miss_access allow all
#允许直接更新请求
ident_lookup_access deny all
#禁止lookup检查DNS
http_port 8080 transparent
#指定Squid监听浏览器客户请求的端口号。
hierarchy_stoplist cgi-bin ?
#用来强制某些特定的对象不被缓存,主要是处于安全的目的。
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_mem 1 GB
#这是一个优化选项,增加该内存值有利于缓存。应该注意的是:
#一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1G
fqdncache_size 1024
#FQDN 高速缓存大小
maximum_object_size_in_memory 2 MB
#允许最大的文件载入内存
memory_replacement_policy heap LFUDA
#动态使用最小的,移出内存cache
cache_replacement_policy heap LFUDA
#动态使用最小的,移出硬盘cache
cache_dir ufs /home/cache
#高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,
#32个一级目录,512个二级目录
max_open_disk_fds 0
#允许最大打开文件数量,0 无限制
minimum_object_size 1 KB
#允午最小文件请求体大小
maximum_object_size 20 MB
#允午最大文件请求体大小
cache_swap_low 90
#最小允许使用swap 90%
cache_swap_high 95
#最多允许使用swap 95%
ipcache_size 2048
# IP 地址高速缓存大小 2M
ipcache_low 90
#最小允许ipcache使用swap 90%
ipcache_high 95
#最大允许ipcache使用swap 90%
access_log /var/log/squid/access.log squid
#定义日志存放记录
cache_log /var/log/squid/cache.log squid
cache_store_log none
#禁止store日志
emulate_httpd_log on
#将使Squid仿照Web服务器的格式创建访问记录。如果希望使用
#Web访问记录分析程序,就需要设置这个参数。
refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload
#更新cache规则
acl buggy_server url_regex ^http://.... http://
#只允许http的请求
broken_posts allow buggy_server
acl apache rep_header Server ^Apache
#允许apache的编码
broken_vary_encoding allow apache
request_entities off
#禁止非http的标分准请求,防止攻击
header_access header allow all
#允许所有的http报头
relaxed_header_parser on
#不严格分析http报头.
client_lifetime 120 minute
#最大客户连接时间 120分钟
#指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。
cache_effective_user squid
#这里以用户squid的身份Squid服务器
cache_effective_group squid
icp_port 0
#指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。
#这里设置为0是因为这里配置Squid为内部Web服务器的加速器,
#所以不需要使用邻居服务器的缓冲。0是禁用
# cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1
cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchange
cache_peer_domain 127.0.0.1
hostname_aliases 127.0.0.1
error_directory /usr/share/squid/errors/Simplify_Chinese
#定义错误路径
always_direct allow all
# cache丢失或不存在是允许所有请求直接转发到原始服务器
ignore_unknown_nameservers on
#开反DNS查询,当域名地址不相同时候,禁止访问
coredump_dir
/var/log/squid
#定义dump的目录
max_filedesc 2048
#最大打开的文件描述
half_closed_clients off
#使Squid在当read不再返回数据时立即关闭客户端的连接。
#有时read不再返回数据是由于某些客户关闭TCP的发送数据
#而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。
buffered_logs on #若打开选项“buffered_logs”可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化特性。
#防止天涯盗链,转嫁给百度
acl tianya referer_regex -i tianya
http_access deny tianya
#阻止baidu蜘蛛
acl baidu req_header User-Agent Baiduspider
http_access deny baidu
#限制同一IP客户端的最大连接数
acl OverConnLimit maxconn 128
http_access deny OverConnLimit
#防止被人利用为HTTP代理,设置允许访问的IP地址
acl myip dst 222.18.63.37
http_access deny !myip
#允许本地管理
acl Manager proto cache_object
acl Localhost src 127.0.0.1 222.18.63.37
http_access allow Manager Localhost
cachemgr_passwd
http_access deny Manager
#仅仅允许80端口的代理
acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 80 # http
http_access deny !Safe_ports
http_access allow all
#Squid信息设置
visible_hostname happy.
cache_effective_user squid
cache_effective_group squid
tcp_recv_bufsize 65535 bytes
#2.6的反向代理加速配置
cache_peer 127.0.0.1 parent 80 0 no-query originserver
error_directory /usr/local/squid/share/errors/Simplify_Chinese
#单台使用,不使用该功能
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \? .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
refresh_pattern ^ftp:
refresh_pattern ^gopher:
refresh_pattern .
cache_store_log none
pid_filename /usr/local/squid/var/logs/squid.pid
emulate_httpd_log on
Squid常用命令
初始化在squid.conf里配置的cache目录
如果有错误提示,请检查cache目录的权限,可以更改目录权限
chown -R squid:squid /cache目录
对squid.conf排错,即验证squid.conf的语法和配置
squid -k parse
如果在squid.conf中有语法或配置错误,这里会返回提示,若无返回,尝试启动squid
前台启动squid,并输出启动过程
/usr/local/squid/sbin/squid -N -d1
如果有ready to server reques相关信息,说明squid启动成功
然后ctrl+c ,停止squid,并以后台运行的方式启动它
启动squid在后台运行
可以使用ps -ax | grep squid 来查看squid进程是否存在
squid -k shutdown
重新引导修改过的squid.conf
squid -k reconfigure -f /XXX/squid.conf
当squid进行配置更改后,可以使用该命令进行squid配置重载
把squid添加到系统启动项
vim /etc/rc.local
/usr/local/squid/sbin/squid -s
修改cache缓存目录的权限
chown -R squid.squid /cache目录
cache缓存目录根据自己的配置更改,squid用户和组是squid,squid
修改squid日志目录的权限
chown -R squid.squid 定义的日志文件所在目录
这一步并不是适合每一个使用squid的用户,意为让squid有权限在该目录里进行写操作
查看你的日志文档
more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。
more /usr/local/squid/var/logs/access.log | grep TCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。
more /usr/local/squid/var/logs/access.log | grep TCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是从原始服务器获取并返回给访问用户。
Squid命中率分析
/usr/local/squid/bin/squidclient -p 80 mgr:info
/usr/local/squid/bin/squidclient -p 80 mgr:5min
可以看到详细的性能情况,其中PORT是你的proxy的端口,5min可以是60min
取得squid运行状态信息:
squidclient -p 80 mgr:info
取得squid内存使用情况:
squidclient -p 80 mgr:mem
取得squid已经缓存的列表:
squidclient -p 80 mgr:bjects. use it carefully,it may crash
取得squid的磁盘使用情况:
squidclient -p 80 mgr:diskd
强制更新某个url:
squidclient -p 80 -m PURGE /xxx.php
更多的请查看:squidclient-h 或者 squidclient -p 80 mgr:
查命中率:
squidclient -h IP(具体侦听IP) -p 80(具体侦听端口) mgr:info
定期清理swap.state内无效数据
/path/to/squid/sbin/squid -k rotate -f /path/to/squid/conf_file
vi /etc/crontab
/usr/local/sbin/squid -k rotate -f /usr/local/etc/squid/squid1.conf
当squid应用运行了一段时间之后,cache_dir对应的swap.state文件就会变得越来越大,里面的无效接口数据越来越多,这可能影响squid的响应时间,因此需要使用squid清理swap.state里面的无效数据,减少swap.state的大小。
参考文章:
阅读(...) 评论()}

我要回帖

更多关于 squid 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信