用squid配置缓存服务器

为了减小web服务器的负担,可以用squid搭建一个缓存服务器,用来分担主服务器的请求

Posted by Start Bootstrap on November 03, 2017

使用squid3进行本地缓存(系统环境ubuntu14.04)

1.安装squid3

sudo apt-get update && sudo apt-get -y upgrade​
sudo apt-get install squid​

2.备份配置文件

sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.old

3.修改配置文件

#允许客户端的ip
acl all src all
#配置用户名密码,后面会生成passwords文件
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated all
cache_dir ufs <缓存目录> 1000 16 256
coredump_dir <缓存目录>
# 对 squid 的一些优化
maximum_object_size 10240 KB ### 能缓存的最大对象为 10M
maximum_object_size_in_memory 1024 KB ### 内存中缓存的最大对象 512K
cache_mem 256 MB ###squid 用于缓存的内存量
# 匹配路径中图片结尾的请求
acl images urlpath_regex -i \.(jpg|jpeg|png)$
# 匹配特定域名的请求
acl google_analytics dstdomain www.google-analytics.com
# 拒绝缓存 ga 的内容
cache deny google_analytics
# 缓存图片内容
#cache allow images
cache allow all
# cache 的内容同时要配置 refresh_pattern
# 图片一天(1440分钟)后失效
refresh_pattern -i \.(jpg|jpeg|png)$ 1440 100% 1440

4.配置用户密码认证 网络上有很多专门爬免认证的代理的爬虫,如果我们自己搭建的代理服务器不加认证的话,会被这些爬虫探测到然后沦为了免费代理。 使用htpasswd来创建passwords文件,htpasswd命令在软件包apache2-utils中。

sudo apt-get install apache2-utils

生成password文件

sudo htpasswd -c -d /etc/squid3/passwords <自定义用户名>

然后输入两次至少8位的密码,会在/etc/squid3/目录下生成passwords文件,要保证该文件是可读的。

sudo chmod o+r /etc/squid3/passwords

5.初始化cache目录,即建立缓存目录的存储格式(在初次运行squid之前,或者增加了新的cache_dir,必须初始化cache目录),cache目录初始化可能花费一些时间,依赖cache目录的大小和数量,要观察详细过程可以加-X选项

sudo squid3 -z

6.启动服务,也可以使用restart,stop进行重启和关闭

sudo service squid3 start

7.用浏览器连接代理

<squid服务器的地址>:<squid配置文件中的端口号,默认是3128>

8.如果出现问题,可以参考

sudo tailf /var/log/squid3/cache.log

日志打印出来的信息