squide教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

规则举例
http_port 3128 # 监听内外网端口 cache_dir ufs /var/squid cache_mem 32MB cache_swap_low 90 cache_swap_high 95 cache_dir /var/squid 1000 16 32 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log acl all src 0.0.0.0/0.0.0.0 acl head src 192.168.0.2/255.255.255.255 192.168.0.3/255.255.255.255 acl denysite dstdomain tw net acl denyip dst 202.96.134.133/255.255.255.255 acl dnsport port 53 http_access allow head http_access deny denysite http_access deny denyip http_access deny dnsport 客户端在 IE 设置里填写代理服务器 IP 地址及端口,即刻实现高速上网
反向代理工作流程

WEB 服务器集群 WEB 服务器 SQUID 服务器 用户
WEB 服务器
WEB 服务器 用户
SQUID 如何工作


以下将讲解三种 SQUID 的工作方式,首先需要定义三种不通类型的网络结构,我们将三种网 络结构分别命名为:传统代理,透明代理,反向代理。客户端 IP 为 192.168.1.100 , SQUID 服 务器的内外网 IP 分别为 192.168.1.1/1.2.3.4 ,内外网网络接口分别为 eth1 和 eth0 ,远端 WEB 服 务器 IP 为 2.3.4.5 传统代理:

透明代理
透明代理的意思是客户端根本不需要知道有代理服务器的存在。 在以上基础上我们做以下工作: 1. 配置透明代理服务器软件运行在代理服务器的 3128 端口。 2. 配置代理服务器将所有对 80 端口的连接重定向到 3128 端口。 3. 配置客户端浏览器直接连解到 Internet 。 4. 在客户端配置好 DNS. 5. 配置客户端的缺省网关为 192.168.1.1. 当我们在客户端浏览器中打开一个 web 请求,比如“ ” ,这时将陆续发生以下事件: 1. 客户端向 DNS 请求“ ”, 得到相应的 IP 地址 2.3.4.5 。然后,客户端使用某一端口(比如 1066) 向该 IP 地址的 80 端口发起 web 连接请求,请求 web 页面。 2. 当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口 3128 。于是,透 明代理服务器用某一端口(比如 1088) 向 2.3.4.5 的 80 端口发起 web 连接请求,请求 web 页面。 3. 收到响应的 web 页面后,代理服务器把该数据传送给客户端。 4. 客户端浏览器显示该页面。 从 的角度看来,连接是在 1.2.3.4 地 1088 端口和 2.3.4.5 的 80 端口之间建立的。从 client 的角 度看来,连接是在 192.168.1.100 的 1066 端口和 2.3.4.5 的 80 端口之间建立的。 以上就是传统代理服务网时会遇到只知道文件名,但不知道文件在 Internet 的什么地方,导 航系统就无法下载此文件,那么有什么办法能够查找到文件的位置呢 ? 在 Internet 中有许多被称为 Archie 服务器的计算机,他们就象图书管理员,提供了一 项相当重要的服务 : 它能够在只知道文件名的前提下,为用户找到这个文件所在的 FTP 服务 器的地址,这种功能就叫做 Archie 。
什么是透明代理

所谓透明代理,是相对于代理服务器而言,客户端不需要做任何和代理服务器相关的设置和 操作,对用户而言,更本感觉不到代理服务器的存在,所以称之为透明代理。
透明代理流程说明

用户 A 发送一个访问请求到防火墙,由防火墙将该用户的访问请求转发到 SQUID , SQUID 在 先检查自身缓存中有无该用户请求的访问内容,如果没有,则请求远端目的服务器,获取该 用户的访问内容,在返回给用户的同时,在自身缓存保留一份记录以备下次调用;当用户 B 发送一个和用户 A 相同的访问请求时,由防火墙将转发该用户请求到 SQUID , SQUID 检查自 身缓存发现有同样内容后,直接将该内容返回给用户。
Client

SQUID 服务器
WEB 服务器
透明代理:
Client

防火墙
SQUID 服务器
SQUID 服务器
WEB 服务器
反向代理: WEB 服务器
Client
SQUID 如何工作

传统代理
1.SQUID 被绑定到代理服务器的 3128 端口。 2. 客户端浏览器被配置使用代理服务器的 3128 端口。 3. 客户端不需要配置 DNS 。 4. 代理服务器上需要配置代理服务器。 5. 客户端不需要配置缺省路由。 当我们在客户端浏览器中打开一个 web 请求,比如“ ” ,这时将陆续 发生以下事件: 1. 客户端使用某一端口(比如 1025) 连接代理服务器 3128 端口,请求 web 页面“ http://www. ” 2. 代理服务器向 DNS 请求“ ”, 得到相应的 IP 地址 2.3.4.5 。然后,代理服务器 使用某一端口(比如 1037) 向该 IP 地址的 80 端口发起 web 连接请求,请求 web 页面。 3. 收到响应的 web 页面后,代理服务器把该数据传送给客户端。 4. 客户端浏览器显示该页面。 从 的角度看来,连接是在 1.2.3.4 地 1037 端口和 2.3.4.5 的 80 端口之间建立的。 从 client 的角度看来,连接是在 192.168.1.100 的 1025 端口和 1.2.3.4 的 3128 端口之间建立的。
什么是 GOPHER 、 WAIS 、 Archie

关于 GOPHER : Gopher 是 Internet 上一个非常有名的信息查找系统,它将 Internet 上的文 件组织成某种索引,很方便地将用户从 Internet 的一处带到另一处。允许用户使用层叠结构 的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。 Gopher 客户程序和 Gopher 服务器相连接,并能使用菜单结构显示其它的菜单、文档或 文件,并索引。同时可通过 Telnet 远程访问其它应用程序。 Gopher 协议使得 Internet 上的 所有 Gopher 客户程序,能够与 Internet 上的所有已 " 注册 " 的 Gopher 服务器进行对话。

关于 WAIS : WAIS 这个名称是英文“ Wide Area Information Service” ( 广域信息服务 ) 的 缩写。 WAIS 是一种能够在几百个数据库中搜索任何一个信息的 Internet 服务。我们把每个 这样的数据库称之为源。用户指定一个或几个单词为关键字, WAIS 按照用户所给出的关键 字对指定的源中的每个项目或整个正文内容进行检索, 并且找出符合用户指定标准的项目 。
SQUID 能做什么

代理服务器 透明代理 反向代理
什么是 SQUID 代理服务器

做为代理服务器,这是 SQUID 的最基本功能;通过在 squid.conf 文件里添加一系列访问及控 制规则,用户在客户端设置服务器地址和端口,即可通过 SQUID 访问 INTERNET ,在下面的 规则里, squid 实现局域网用户代理和高速缓存功能:
Squid 教程
提纲

Squid 是什么 ? Squid 能做什么 ? Squid 如何工作的 ? Squid 的工作原理是什么 ? Squid 实例讲解
SQUID 是什么

Squid 是一个高性能的代理缓存服务器, Squid 支持 FTP 、 gopher 和 HTTP 协议。 和一般的代理缓存软件不同, Squid 用一个单独的、非模块化的、 I/O 驱动的进 程来处理所有的客户端请求。 Squid 将数据元缓存在内存中,同时也缓存 DNS 查询的结果,除此之外,它还支 持非模块化的 DNS 查询,对失败的请求进行消极缓存。 Squid 支持 SSL ,支持访 问控制。由于使用了 ICP (轻量 Internet 缓存协议), Squid 能够实现层叠的代 理阵列,从而最大限度地节约带宽。 Squid 由一个主要的服务程序 squid, 一个 DNS 查询程序 dnsserver ,几个重写请 求和执行认证的程序,以及几个管理工具组成。当 Squid 启动以后,它可以派生 出预先指定数目的 dnsserver 进程,而每一个 dnsserver 进程都可以执行单独的 DNS 查询,这样一来就大大减少了服务器等待 DNS 查询的时间。

注:在实际使用中,通常将 SQUID 和防火墙放在同一台机器上,为了更清楚的象浏览者描述 其工作流程,在以下的流程图中将防火墙和 SQUID 分开显示。
透明代理工作流程图
WEB 服务器 SQUID
用户 A
防火墙
用户 B
什么是反向代理

普通代理方式是代理内部网络用户访问 internet 上服务器的连接请求,客户端必须指定代理 服务器 , 并将本来要直接发送到 internet 上服务器的连接请求发送给代理服务器处理。反向 代理( Reverse Proxy )方式是指以代理服务器来接受 internet 上的连接请求,然后将请求 转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户 端,此时代理服务器对外就表现为一个服务器。

反向代理
反向代理是相对于传统代理而言,是代理 web 服务器接受客户端的请求 在此,我们忽略客户端的设置,假设客户端是可以直接访问互联网 web 服务器与客户端的结构如下: 假设已经将 的域名指向了 squid 服务器所在的 ip ,并且在 web 服务器集群里做了 dns 轮询。 web server1 -| web server2 -|- squid 服务器 / INTERNET / - Client web server3 -| 1. 客户端通过 IE 向 DNS 服务器发送访问 的请求,由客户所在地的 DNS 服务器解析 www. 的 IP 为 2.3.4.5 并返回给用户。 2. 客户收到 DNS 返回的服务器 IP 地址,重新向 指向的 IP 地址发送访问请求。 3.squid 服务器接收到用户的请求后,查询自身缓存中是否有用户请求内容,有则直接发送给客户端 ,如果没有则通过内部 DNS 轮询查询空闲服务器,并将客户请求发送到该服务器,在获取到用户数 据并返回给用户的同时保留一份在自己本身的缓存当中。 在用户看来,自己访问的是 这个服务器,实际上真正的 WEB 服务器为 SQUID 缓存后面 的服务器或者服务器集群,通过外部 DNS 做 CNAME 转向,将用户请求转发到内部真正的 web 服务器 上去
反向代理流程说明

SQUID 做为反向代理服务器,通常工作在一个服务器集群的前端,在用户端看来, SQUID 服 务器就是他所要访问的服务器,而实际意义上 SQUID 只是接受用户的请求,同时将用户请求 转发给内网真正的 WEB 服务器,如果 SQUID 本身有用户要访问的内容,则 SQUID 直接将数据 返回给用户。
相关文档
最新文档