squid:作用:代理,缓存,不可访问的通过代理可访问。

正向代理:squid后面是客户端,客户端上网要通过squid
常用在企业办公环境中,节省网络带宽资源,
员工上网需通过squid代理。

用户<--->访问<--->代理服务器<--->防火墙|资源服务器
反向代理:squid后面是服务器,服务器返回给用户数据需要走squid.
用在网站架构中,常用来搭建网站静态项(图片,css,html,js,流煤体等)缓存服务器。

用户<--->代理服务器<--->资源服务器

一、正向代理

1、安装squid:yum install -y squid
2、打开squid.conf
修改内容:
打开cache_dir ufs /var/spool/squid 100 16 256
即前面的#去掉。
3、手动增加cache_men 100MB 启用一定的内存作缓存。
4、设置缓存对象配置
refresh_pattern \.(jpg|png|gif|css|js|mp3) 1400 20% 2880 ignore-reload(忽略重新加载)
检查配置文件是否有问题
squid -kcheck
5、启动squid
启动之前先进行初始化缓存目录
mkdir /data/cache
修改目录所有者,所属组
chown -R squid:squid /data/cache/
初始化 squid -z
/etc/init.d/squid start
初始化
出错可查看错误日志,从而解决问题。
6、查看是否服务启动/听端口
ps aux|grep squid
netstat -ltnp
测试:curl -xlocalhost:3128 http://www.baidu.com/
对图片的缓存:curl -xlocalhost:3128 http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E7%89%87&hs=0&pn=3&spn=0&di=90846154080&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=223138572%2C2764436179&os=1209834903%2C106429489&simid=0%2C0&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fimg.bimg.126.net%2Fphoto%2FZWdvRTBDrymgJueo73kgpw%3D%3D%2F449797012800471966.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fks52_z%26e3B8mn_z%26e3Bv54AzdH3F48c80d0ac0a0_dAzdH3Fks52AzdH3FfpwptvAzdH3Fd9cdn0a8cda8n9dbm9aabalAzdH3F&gsm=0 -I

7、拒绝某些站点的访问
打开squid.conf
在其中acl 部分加入如入内容:
acl http proto HTTP
acl good_domain dstdomain .baidu.com
http_access allow good_domain
http_access deny !good_domain
重新加载:squid -krec
测试:curl -xlocalhost:3128 http://www.baidu.com/ -I
测试:curl -xlocalhost:3128 http://www.sohu.com/ -I

可访问的就是代理的域名

二、反向代理

1、打开squid.conf
修改内容:代理谁就要知道它的域名及IP。
http_port 80 accel vhost vport
cache_peer 111.13.100.92\
->parent 80 0 originserver name=a
cache_peer_domain a www.baidu.com
如果是多个代理其name名不可相同。
检测: squid -kch
重新加载:squid -kre

2、因为端口是80所以需要先关闭nginx/apache服务
3、重新启动squid服务。
/etc/init.d/squid start

测试:curl -xlocalhost:80 http://www.sohu.com -I
curl -xlocalhost:80 http://www.baidu.com -I

可访问的就是代理的域名。