Squid是比较知名的代理软件,它不仅可以跑在linux上还可以跑在windows以及Unix上,它的技术已经非常成熟。目前使用Squid的用户也是十分广泛的。Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。
Squid之所以用的很多,是因为它的缓存功能,Squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O. 从经济角度考虑,它是很多网站架构中不可或缺的角色。Squid不仅可以做正向代理,又可以做反向代理。
# 正向代理 #
Squid后面是客户端,客户端想上网不管什么网都得经过Squid. 当一个用户(客户端)想要请求一个主页时,它向Squid发出一个申请,要Squid替它请求,然后Squid 连接用户要请求的网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户请求同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。使用正向代理时,客户端需要做一些设置,才能实现,也就是平时我们在IE选项中设置的那个代理。
# 反向代理 #
Squid后面为某个站点的服务器,客户端请求该站点时,会先把请求发送到Squid上,然后Squid去处理用户的请求动作。
- 正向代理:Squid后面是客户端 客户端上网要通过Squid去上
- 反向代理:Squid后面是服务器 服务器返回给用户数据需要走Squid
Squid安装
- 安装包:yum install -y squid
- 注:CentOS系统自带Squid包
[root@localhost ~]# systemctl start squid
源码包安装
解压安装包
[root@localhost ~]# ls anaconda-ks.cfg squid-3.5.27.tar.gz [root@localhost ~]# tar -xf squid-3.5.27.tar.gz
进入目录下编译安装
[root@localhost ~]# cd squid-3.5.27 [root@localhost squid-3.5.27]# ./configure --prefix=/usr/local/squid --disable-loadable-modules --enable-gnuregex --enable-icmp --enable-linux-netfilter --enable-err-language="zh-cn" --enable-default-err-language="zh-cn" --enable-kill-parent-hack --enable-cache-digests --enable-dlmalloc--enable-poll --enable-async-io=240 --enable-arp-acl--mandir=/usr/share/man/ --with-large-files --with-fd=20480 --with-large-files --enable-arp-acl
[root@localhost squid-3.5.27]# make && make install
Sqiud 常用操作
- 测试配置文件:squid -kcheck
- 读取配置文件:squid -krec
- 获取squid帮助信息:squid -h