大家好,又见面了,我是你们的朋友全栈君。
- a. Client 端向 Server 端发送一个数据需求封包;
- b. Server 端接收之后,先比对这个封包的『来源』与预计要前往的『目标』网站是否为可接受? 如果来源与目标都是合法的,或者说,来源与目标网站我们的 Proxy 都能帮忙取得资料时,那么 Server 端会开始替 Client 取得资料。这个步骤中比较重要的就是『比对政策』啦,有点像是认证的感觉啦;
- c. Server 首先会检查自己快取 (新的数据可能在内存中,较旧的数据则放置在硬盘上) 数据, 如果有 Client 所需的数据,那就将数据准备取出,而不经过向 Internet 要求数据的程序;
- 最后当然就是将数据回传给 Client 端!
当然,硬盘容量必需要足够大,而且还要『足够快』才行!
上面的流程当中,我们不难发现, cache 是一直被重复存取的一个
地方!所以硬盘的好坏就差别很大啦!
效能好坏的关键
- NAT 服务器的功能:就如同第九章提到的数据, Linux 的 NAT 功能主要透过封包过滤的方式, 并使用 iptables 的 nat 表格进行 IP 伪装 (SNAT) ,让客户端自行前往因特网上的任何地方的一种方式。主要的运作行为是在 OSI 七层协议的二、三、四层。由于是透过封包过滤与伪装,因此客户端可以使用的端口口号码 (第四层) 较弹性;
- Proxy 服务器的功能:主要透过 Proxy 的服务程序 (daemon) 提供网络代理的任务,因此 Proxy 能不能进行某些工作,与该服务的程序功能有关。 举例来说,如果你的 Proxy 并没有提供邮件或 FTP 代理,那么你的客户端就是无法透过 Proxy 去取得这些网络资源。 主要运作的行为在 OSI 七层协议的应用层部分(所谓的比较“高阶”之意)
- 作为 WWW 的网页资料取得代理人:这是最主要的功能。
- 作为内部区网的单点对外防火墙系统:
- 如果你的Proxy 是放在内部区网的 Gateway 上头,那么这部代理服务器就能够作为内部计算机的防火墙
- 节省单点对外的网络带宽,降低网络负载:
- 当你的 Proxy 用户很多时,那么 Proxy 内部的快取数据将会累积较多。因此客户端想要取得网络上的数据时,很多将会从 Proxy 的快取中取得,而不用向因特网要求资料。 所以可以节省带宽啊!
- 以较短的路径取得网络数据,有网络加速的感觉:
- 例如你可以指定你的 ISP提供的代理服务器连接到国外,由于 ISP 提供的 Proxy 通常具有较大的对外带宽,因此在对国外网站的数据取得上, 通常会比你自己的主机联机到国外要快的多。此外,与上一点的快取数据也有关系啊!从内部硬盘取得的路径总比对外的因特网要短的多啊!
- 透过上层代理服务器的辅助,达到自动数据分流的效果:
- 例如图 17.1-4 所示,让客户端在不知不觉之间,就可以得到数据由不同 Proxy 取得的加速效果!
- 提供防火墙内部的计算机连上 Internet:就是上面提到的单点对外防火墙功能
- 容易被内部区网的人员滥用:
- 我们知道因特网上看到取得数据的人是 Proxy那部主机而不是客户端计算机的 IP,因此可能会让某些内部网络使用人员开始利用你的 proxy 干坏事,此时你就会很麻烦~ 所以,为了杜绝这个状况,强烈的建议多加登录档案分析的软件,在管理上面会轻松很多!
- 需要较高超的设定技巧与除错程序:
- 在设定服务器当中, Proxy 算是比较不容易设定好『效能』的一个服务器了!由于 Proxy 的 Cache 与他的『上层代理服务器』的关系是很紧密的, 万一设定错误的话,很有可能反而让你的Proxy 拖垮客户端 WWW 的浏览速度!最严重的是造成无法联机!
- 可能会取得旧的错误数据:
- 这个最容易发生了!由于曾经浏览过的网页会被放置到快取, 并提供后续用户的直接取得。 万一因特网上面的那个网页数据更新过呢?那时你会发现,怎么客户端无法看到更新后的资料? 就是因为快取的问题。
- 我的 Client 端用户不少,而且大部分仅需要 WWW 这个网络服务而已;
- 我的 Proxy 还兼做防火墙的任务;
- 我的 Client 端常常需要联机到传输速度很慢的网站,例如国外的网站;
- 我的 Client 端常常浏览的网站是『静态』网站,而不是动态网站 (例如讨论区的 PHP)。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139811.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...