squid
http://www.squid-cache.org/
squid软件主要有两大应用:
1,代理上网(正向代理,透明代理)
2,网站静态页面缓存加速(反向代理)
三种代理类型
正向代理 代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)
透明代理 和正向代理的功能完全一致(客户端不需要设置代理服务器的IP和代理端口,对用户是透明的)
外网
|
medem
|
路由器(dhcp,snat共享上网,上网行为控制,限速等)
|
|
squid正向代理(共享上网,静态页面缓存加速,内网用户四七层上网行为控制,限速等)
|
|
|----------------------|
上网用户一 上网用户二
反向代理 从外部网络访问内部服务器,与正向方向相反,主要用于网站架构的缓存加速或CDN
client
|
|
反向代理 (缓存加速,七层切分,负载均衡,会话保持等)
|
|
web
===================================================================
正向代理实验
公网
|
|
eth0 172.16.2.9
squid 服务器
vmnet1 192.168.1.1
|
|
|
内网用户VM1
eth0(vmnet1)
192.168.1.128
准备这个拓扑图要注意的地方
1,宿主机(squid服务器)需要能上外网,在这里就是指向公司的路由器
2,192.168.1.0网络,我这里使用vmware的vmnet1网段来模拟
3,内网用户只要与squid服务器能ping通就行,不用指网关和DNS
4,内网用户需要安装图形界面,并安装firefox浏览器
5,squid服务器能上外网,但内网用户不能上外网,我们的目地就是让squid代理内网用户上外网
第一步:在squid服务器上安装squid------------www.squid-cache.org
# yum install squid -y
第二步:修改配置文件
rhel6.5下自带的squid(主配置文件少了很多参数,文档都写到了/usr/share/doc/squid-3.1.10/squid.conf.documented这个文件里)
rhel6.5下的配置
# vim /etc/squid/squid.conf
59 http_access allow all ----把deny all改民allow all
68 cache_dir ufs /var/spool/squid 100 16 256 ----把缓存目录这一句打开注释
如果你第二次重启squid时报下面的错误,表示内存高速缓存大于磁盘缓存的总空间
WARNING cache_mem is larger than total disk cache space!
原因:默认情况下,cache_mem为256M,而squid的配置里磁盘缓存默认为100M
如果你要解决这个问题的话:
1,第一种方式:调小cache_mem,因为磁盘缓存默认是100M,所以你加上一句cache_mem 100 MB
2,第二种方式:调大磁盘缓存;如cache_dir ufs /var/spool/squid 256 16 256;把100换成256
内存---》磁盘
cache_mem /var/spool/squid
第三步:
启动服务
# /etc/init.d/squid start
# lsof -i:3128 ----查看3128端口
第四步:
客户端的测试
(不用设置网关和DNS指向)
主要是修改浏览器
--filefox配置
编辑--性能--高级--网络--设置-- 手动填写代理服务器的IP和代理端口
--IE配置
右键IE图标--连接--局域网设置--为LAN使用代理服务器前打勾并填上代理服务器的内网IP及其代理端口
测试:
firefox http://172.16.2.9 ----访问到192.168.1128的web页面
访问已经访问过的页面是否能感觉到页面加快
再次查看 du -s /var/spool/squid 发现增大,因为缓存了对象
查看相关日志 /var/log/squid/squid/*.log
来源:https://www.cnblogs.com/skyzy/p/9201310.html