1. Squid是什么?
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要
下载的目标( object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web
页面,他请求Squid为他取得这个页面。 Squid随之连接到远程服务器(比如: http: //
squid.nlanr.net/)并向这个页面发出请求。然后, Squid显式地聚集数据到客户端机器,而且
同时复制一份。当下一次有人需要同一页面时, Squid可以简单地从磁盘中读到它,那样数
据迅即就会传输到客户机上。当前的Squid可以处理HTTP, FTP, GOPHER, SSL和WAIS等协
议。但它不能处理如POP, NNTP, RealAudio以及其它类型的东西。
2.squid代理的作用:
通过缓存方式为用户提供web访问加速
对用户的web访问进行过滤控制
3. 接下来我们主要探讨的是squid各种代理的定义
正向代理
a. 标准的代理缓冲服务器
一个标准的代理缓冲服务被用于缓存静态的网页(例如: html文件和图片文件等)到本
地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器
将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝
贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机
的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理
服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓
冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保
存一份缓冲,然后将文件发给客户端浏览器。
b. 透明代理缓冲服务器
透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览
器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过
滤出访问外部的HTTP( 80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直
接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服
务器完全相同。对于Linux操作系统来说,透明代理使用 Iptables或者Ipchains实现。因为不需
要对浏览器作任何设置,所以,透明代理对于ISP( Internet服务器提供商)特别有用。
反向代理:
a. 反向代理缓冲服务器
反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的
负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。
它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了 WEB服务器
和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务
器直接将缓冲内容发送给用户。如果没有缓冲则先向 WEB服务器发出请求,取回数据,本地
缓存后再发送给用户。这种方式通过降低了向 WEB服务器的请求数从而降低了 WEB服务器的
负载。
4. Squid 主要组成部分
服务名: squid
主程序: /usr/sbin/squid
配置目录: /etc/squid
主配文件: /etc/squid/squid.conf
监听tcp端口号: 3128
默认访问日志文件: /var/log/squid/access.log
5.squid 常用配置选项(/etc/squid/squid.conf)
http_port 3128 (还可以只监听一个一个ip http_port 192.168.0.1:3128)
cache_mem 64MB#缓存占内存大小
2/6
maximum_object_size 4096KB#最大缓存块
reply_body_max_size 1024000 allow all #限定下载文件大小
access_log /var/log/squid/access.log #访问日志存放的文件
visible_hostname proxy.test.xom #可见的主机名
cache_dir ufs /var/spool/squid 100 16 256
usf:缓存数据的存储格式
/var/spool/squid 缓存目录
100 : 缓存目录占磁盘空间大小( M)
16 :缓存空间一级子目录个数
256 :缓存空间二级子目录个数
cache_mgr webmaster@test.com #定义管理员邮箱
http_access deny all #访问控制
6. 好了介绍了那么多下面我们来对squid几种代理进行简单配置:
标准的代理缓冲服务器的配置:
a.squid服务器上的配置
准备环境:软件包: squid(任意版本)
双网卡: eth0:192.168.1.1 eth1:10.106.34.12
如图:
vim /etc/squid/squid.conf
http_port 3128
access_log /var/log/squid/access.log
http_access allow all
b.一切配置以后:
squid z 初始化缓存
squid k parse 检查语法
service squid start 启动squid
chkconfig squid on 加入开机启动
netstat nltp 查看3128端口是否打开
c.客服端的配置:
ip : 192.168.1.12 gw:192.168.1.1
然后打开浏览器工具选项连接局域网设置代理服务器
地址: 192.168.1.1 端口: 3128
一切搞定之后在浏览器输入http: //www.google.cn即可访问,上网了 easy吧!
透明代理缓冲服务器的配置:
a. aquid服务器上的配置与标准的代理缓冲服务器几乎一样
差别就是: http_port 192.168.1.12:3128 transparent
b.添加iptables规则:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128
( iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128