------------------------------------------------------
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
------------------------------------------------------------------------
代理服务器分类:
------------------------------------------------------------------------
正向代理:
1.普通代理服务:即标准的,传统的代理服务 需要客户机在浏览器中指定代理服务器的地址,端口
2.透明代理服务:使用于企业的网关主机(共享接入internet)中客户机不需要指定代理服务器地址端口等信息需要设置防火墙策略将客户机的Web访问数据转接给代理服务程序处理。
反向代理:
反向代理服务
为Internet用户访问企业Web站点提供缓存加速
正向代理介绍:
------------------------------------------------------------------------
普通正向代理:
普通正向代理(forward)是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
(在这种方式中,你是主动的,网站是被动的,网站那里不能得到你的真实ip地址)
透明正向代理:
透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指 明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据 直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用 Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。
使用squid配置一个普通正向代理:
准备:
服务器需要两块网卡
eth0 192.168.6.1
eth1 192.168.0.10
client 192.168.6.2
1.安装squid
yum install squid
2.配置主配置文件
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
vim /etc/squid/squid.conf
修改http_port 192.168.6.1:3128 让squid监听eth0对应ip的的3128端口
加一行cache_mem 128 MB squid可以使用的内存大小
加一行visible_hostname squid.a.org 服务器名
cache_dir ufs /var/spool/squid 60 256 此是设置缓存目录,60表示60M缓存,16个一级子目录,256个2级子目录
http_access deny all为http_access allow all 允许用户访问
上述操作仅仅是设置完内网可以通过squid访问外网,并没有对访问进行限制
3.初始化squid
squid -z 生成缓存目录
4、启动服务service squid start
[root@bogon ~]# service squid start
Starting squid: . [ OK ]
5.测试
在client上指明代理服务器
#export HTTP_PROXY=
使用squid配置一个透明代理:
对普通正向代理配置做如下修改:
修改squid.conf配置文件,并重新加载该配置
http_port 192.168.6.1:8080 transparent
添加iptables规则
iptables -t nat -I PREROUTING -i eth1 -s 192.168.6.0/24 -p tcp --dport 80 -j REDIRECT --to-port 8080
测试
不需要在client设置指明代理服务器的地址
acl访问控制列表:
可以从客户机的IP地址,请求访问的URL/域名/文件类型/访问时间/并发请求数等方面进行控制。
定义acl列表
acl 列表名称 列表类型 列表内容
针对列表进行限制
http_access allow或deny 列表名
举例1:只允许192.168.6.2访问
acl pc1 src 192.168.6.2
http_access allow pc1
http_access deny all
举例2:拒绝访问qq.com域内的资源
acl domain1 dstdomain .qq.com
http_access deny domain1
http_access deny all
反向代理介绍: ------------------------------------------------------
反向代理是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏 览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防 止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
-------------------------------------------------------------------------
阅读(3442) | 评论(1) | 转发(0) |