Squid是什么

  • 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.

squid代理应用场景

正向代理用在企业的办公环境中,员工上网需要通过Squid代理来上网,这样可以节省网络带宽资源。而反向代理用来搭建网站静态项(图片、html、流媒体、js、css等)的缓存服务器,它用于网站架构中。

squid正向代理

1.安装squid

yum install squid

2.编辑配置文件

vim /etc/squid/squid.conf
打开这一行 cache_dir ufs /var/spool/squid 100 16 256(缓存路径,设置代理服务器,必须要有一个缓存没有缓存会浪费一定的带宽,100M一级子目录16个,二级子目录256个)
在cache_dir ufs /var/spool/squid 100 16 256下增加一行:
cache_mem 28 MB(缓存放在磁盘里有点慢,为了加快速度,把缓存放在内存里,这个数字要小于cache_dir定义的100m,否则会报错)
refresh_pattern .(jpg|png|gif|js|css|mp3|mp4) 1440 20% 2880 ignore-reload(设置缓存对象,ignore-reloadh忽略重新加载)

3.启动squid

/etc/init.d/squid start
如果启动失败,可以查看日志
grep 'cache_log' /etc/squid/squid.conf(查看有没有配置日志)
如果没有也可以看这个日志
cat /var/log/squid/cache.log
查看日志发现错误,在最后面加上了下面这一行
visible_hostname Csslinux.com
定义完之后就正常了

4使用方法

ie浏览器配置代理服务器ip和端口
squid正向代理反向代理_第1张图片

5测试是否配置成功

另一种测试方法:抓包
#tcpdump -nn port 3128
用curl访问:
#curl -x127.0.0.1:3128 www.baidu.com -I

知识点:
squid默认端口是3128,但是这个端口是可以改的
vim /etc/squid/squid.conf

6定义代理白名单和黑名单

acl http proto HTTP   //定义协议
acl good_domain dstdomain  .baidu.com(这个就是代理允许访问的网站)
http_access allow good_domain   //允许白名单里的网站
http_access deny !good_domain   //不允话访问非白名单里的网站
#squid -kcheck  修改完后用这个命令看看有没有错误
#squid -kre     没错的话用这个命令重新加载
然后访问白名单网站以外的网站就无法访问了

squid反向代理

1.编辑配置文件

vim /etc/squid/squid.conf(修改端口为80并增加这几行)
http_port 80 accel vhost vport
cache_peer 47.91.145.78 parent 80 0 originserver name=a
cache_peer_domain a www.apelearn.com
cache_peer 58.60.9.21 parent 80 0 originserver name=b
cache_peer_domain b www.qq.com
保存squid -kre重新加载

2windows设置hosts

192.168.22.130   www.qq.com www.aminglinux.com www.taobao.com www.apelearn.com

3.浏览器测试

配置文件定义的www.qq.com和www.apelearn.com能访问,其他的不能访问