架设Squid代理作为WEB缓存加速

在局域网的路由服务器中假设Squid代理来统一管理并加速内网机器对外部网络的访问速度。

下载并安装Squid

1、从服务器下载tar包。
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.13-RELEASENOTES.......
2、tar 解压
3、编译并安装

./configure --prefix=/usr/local/squid
./make all
./make install

创建cache\log文件夹并赋予相应权限

mkdir /usr/local/squid/var/logs
mkdir /usr/local/squid/var/cache

chmod 777 -R /usr/local/squid/var/logs
chomd 777 -R /usr/local/squid/var/cache

初始化并启动

cd /usr/local/squid
# 初始化
./sbin/squid -z
# 启动
./sbin/squid start

配置文件相关

配置透明代理

设置透明代理后,内网用户就不需要在本机指定代理了。

# 将默认的3128端口设置为透明代理,3.x版本后为intercept,而不是transparent
# Squid normally listens to port 3128
http_port 3129
http_port 3128 intercept

之后,在路由中将80端口的请求全部转发到3129即可。

配置缓存

# Uncomment and adjust the following to add a disk cache directory.
cache_mem 128 MB
# 必须保证本路径真实存在,并赋予相应权限777
cache_dir ufs /usr/local/squid/var/cache/squid 400 16 256
cache_swap_high 95
cache_swap_low 90

# 缓存刷新策略
# 以下是网络上找的推荐策略
#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern -i .css$       360    50%     2880    reload-into-ims
refresh_pattern -i .js$        1440    50%     2880    reload-into-ims
refresh_pattern -i .html$        720   50%     1440    reload-into-ims
refresh_pattern -i .jpg$       1440    90%     2880    ignore-reload
refresh_pattern -i .gif$       1440    90%     2880    ignore-reload
refresh_pattern -i .swf$       1440    90%     2880    ignore-reload
refresh_pattern -i .jpg$       1440      50%     2880    ignore-reload
refresh_pattern -i .png$       1440      50%     2880      ignore-reload
refresh_pattern -i .bmp$       1440      50%     2880      ignore-reload 

refresh_pattern -i .doc$ 1440    50%     2880      ignore-reload
refresh_pattern -i .ppt$ 1440    50%     2880      ignore-reload
refresh_pattern -i .xls$ 1440    50%     2880      ignore-reload
refresh_pattern -i .pdf$ 1440    50%     2880      ignore-reload
refresh_pattern -i .rar$       1440    50%     2880      ignore-reload
refresh_pattern -i .zip$ 1440    50%     2880      ignore-reload
refresh_pattern -i .txt$ 1440    50%     2880      ignore-reload

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

缓存命中情况验证

有两种方法,查日志以及client监控。* 注意:要清空浏览器本地缓存并刷新页面来验证代理服务器的缓存效果,否则很多请求会走浏览器本地缓存 *

日志查询

代理的日志位于/usr/local/squid/var/logs/access.log,通过分组统计状态码的数量获得大致的缓存命中情况:
cat /usr/local/squid/var/logs/access.log | gawk '{print $4}'| sort|uniq -c|sort -nr

前后两次获取页面的结果如下:

这里写图片描述

  • TCP_MISS/200 - 为缓存未命中,从远程服务器下载的请求数量。
  • TCP_REFRESH_UNMODIFIED/304 - 为本地缓存数量
  • TCP_MEM_HIT - 为内存命中次数

可以看见有20条请求走了缓存。

client监控

/usr/local/squid/bin/squidclient -p 3128 mgr:info

这里写图片描述

可以看见Memory hit为内存缓存命中率,Disk hits 为磁盘缓存命中率。分别有5分钟和60分钟范围内的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值