squid服务概述:
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
官网:http://www.squid-cache.org
端口:
grep squid /etc/services
squid 3128/tcp ndl-aas # squid web proxy
安装:
yum -y install squid
启动比开机启动
/etc/init.d/squid start
chkconfig squid on
配置squid正向代理
实验环境
centos 6.9 eth0 192.168.1.60(桥接网卡) eth1 192.168.2.1
windowsxp IP 192.168.2.2 gateway 192.168.2.1
vim /etc/squid/squid.conf
改: #http_access deny all
为: http_access allow all //允许所有用户使用
然后重启服务
/etc/init.d/squid restart
然后在windowsxp中设置浏览器代理
然后就可以访问网络了
配置正向透明代理
vim /etc/squid/squid.conf
改:http_port 3128
为:http_port 3128 transparent
开启路由转发功能:
vim /etc/sysctl.conf
改:net.ipv4.ip_forward = 0
为:net.ipv4.ip_forward = 1
sysctl –p
iptables -F
iptables -F -t nat
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 192.168.1.60
//SNAT代理内部上网,将内部的地址全部转化为可以上网的地址 192.168.1.60
iptables -t nat -A PREROUTING -s 192.168.2.0/24 -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
//端口转化,来自192.168.2.0,从eth1且端口为80的数据进行数据重定向到3128,代理服务器为你工作
保存防火墙规则:
service iptables save
然后重启服务
/etc/init.d/squid restart
然后取消浏览器上的代理就可以访问网络了
配置squid反向代理加速内网web服务器访问速度
这时候需要添加另外一台centos虚拟机,配置ip地址为192.168.2.3,并且配置两台虚拟主机www.servera.com和www.serverb.com
配置 squid代理服务器:
这里,Squid 反向代理服务器监听端口:8000 (默认是:3128)
访问时,需要在客户端,打开浏览器,在浏览器地址栏输入: www.servera.com:8000
配置Squid 服务器监听本机 8000 端口,开启vhost 支持虚拟主机功能,这样也可以给多台服务器加速。
vim /etc/squid/squid.conf
改:http_access denny all
为:http_access allow all
改:http_port 3128
为:http_port 8000 vhost
手动添加一下几行
cache_peer 192.168.2.3 parent 80 0 no-query originserver weight=1 name=a
cache_peer 192.168.2.3 parent 81 0 no-query originserver weight=1 name=b
cache_peer_domain a www.servera.com
cache_peer_domain b www.servera.com
#以上4行配置,让 Squid 服务器知道:
#从客户端过来的请求,如果是 www.serverA.com,则 Squid 向 192.168.2.3的端
口 80发送请求;
#从客户端过来的请求,如果是 www.serverB.com,则 Squid 向 192.168.2.3 的端
口 81 发送请求;
cache_peer_access a allow all
cache_peer_access b allow all
# cache_peer 设置:允许其它 cache 机和访问a和b
其他配置参数说明
cache_dir ufs /var/spool/squid 100 16 256 #指定 Squid 服务器存放数据的目录
然后重启服务
/etc/init.d/squid restart
然后就可以访问了,访问网站是需要加上端口号
http://www.servera.com:8000
http://www.serverb.com:8000
说明:
1)cache_peer 设置与其它 cache 机的通讯,也处理加速方式的核心设置
cache_peer hostname type http-port icp-port [options]
no-query 不发送 icp 信息包到此机器,一般设置原始主机用(如果是 cache 机,则需要互
相发送 icp 包验证存在性)
originserver 指定此机为原始内容服务器,用于加速模式
type: either 'parent'(父亲), 'sibling'(兄弟), or 'multicast'(广播——最好不用).原
始服务器配成 parent
2)cache_peer_domain 限制/指定用户访问的邻居 cache 域,类似
cache_peer_access,cache_peer_domain europe-cache.org parent .ch .dk .fr 以
fr/dk/ch 结尾的域名访问 europe 缓存
3)cache_peer_access cache-host allow|deny [!]aclname 类似 acl,对 cache 机器进行
访问控制,一般不用。例子:cache_peer_access 192.168.0.249 allow HTTP
另外,也可以把squid代理设置为80端口,这样客户端,在访问数据时,就可以直接访问了。不需要输入端口号了。
注:cache_men不能超过cache_dir中的一个数值,否则会出现如下报错,
停止 squid:2012/08/21 16:05:46| WARNING cache_mem is larger than totaldisk cache space!