6.3.2 proxy系统 Proxy就是代理,简单地说,客户机器把请求转发给服务器,服务器代替客户机器进行 Internet访问,将访问回来的结果再回送给客户机。通常我们说的Proxy有好几种,工作 方式也不同。例如,最常用的Proxy方式是服务器打开一个端口,在这个端口上接受客户 的请求,然后自己代替客户机器进行访问。这种方法不需要在客户端安装特殊的软件, 一般的浏览器都可以支持这种功能,缺陷是只能代理标准的一些服务,如WWW,FTP等等; 另外一种方法是在客户端安装专用的软件,然后应用软件通过这个代理工具提供的接口 与服务器联系;当然还有另一种最简单的办法就是IP伪装。我们这里介绍的Proxy是第一 种,即Apache本身提供的Proxy系统。这个代理系统可以将代替服务器取得的内容在服务 器硬盘上存贮起来,以后再有客户访问的时候可以直接从硬盘上取回,因此可以节省网 络流量并加快客户的访问速度。 要启动Apache的Proxy倒是非常的简单,只要在httpd.conf里面加上这样几行: ProxyRequest ON Listen 8080 CacheRoot /var/cache 然后在你的客户浏览器(比如IE)里面将代理服务器设置成你的Apache机器,端口号 8080就可以了。不过这时的Proxy由于Cache太小没有什么实际意义,我们现在来看一看 和Proxy相关的设置,按照我们的习惯,只列出有趣的内容: ProxyRequest 它的值为ON的时候,启动Proxy功能 ProxyRemote 级联Proxy。例如你已经有了一个proxy1.mydomain.com的Proxy服务器,现在想让pro xy2.mydomain.com来直接用proxy1代理,可以使用 ProxyRemote http://proxy1.domain.com:8080 ProxyPass 这个选项的意思比较古怪。例如你有一台www.mydomain.com的apache服务机器,另外 还有一个www2.mydomain.com也是个www服务器,然后你加上一行 ProxyPass /www2/ http://www2.mydomain.com/ 那么以后访问http://www.mydomain.com/www2/就会直接将请求转发给www2,www2目 录看上去是一个本地映像。(这个到底有什么用处?你就当找个乐子吧) ProxyBlock 一个有点恶心的功能,用来阻挡到某些站点的访问,例如ProxyBlock someone.com s omefool.com将会断掉*.somefool.com,someone.com甚至someone.com.cn的访问。这里 的字符串都是匹配子串的方式使用的。 NoProxy 设置你对哪些站点的内容不使用Proxy。通常你显然不愿对同一局域网内的东西进行代 理,所以这个选项一般总是列出你自己内部网的地址。在它的地址列表里面可以使用同 配符和子网的形式,例如: NoProxy .mydomain.com 192.168.12.0/24 ProxyVia 这个选项表示是否在返回内容中说明已经使用了代理,如果你使用级联代理,需要把 它设置成ON。 例如 ProxyVia on CacheForceCompletion 这个选项用来设置一种特殊情况,就是客户的请求快要完成的时候却取消了,服务器 是否应该将未传完的内容保存,这个选项取一个0到100之间的数字,一般取为70,意思 是传递量超过70%的页面就应该缓冲。例如: CacheForceCompletion 70 CacheRoot 存放缓存文件的位置,例如: CacheRoot /var/cache CacheSize 允许使用多少硬盘空间作为Cache。单位是KB。例如 CacheSize 200000 CacheGcInterval 每隔一段时间,Apache会检查cache目录,删除超过Cache空间的文件以便释放硬盘空 间。单位是小时,例如 CacheGcInterval 24 CacheMaxExpire 最大的Cache有效期。如果Cache中的文件的存放时间已经超过了这个有效期,那么再 访问这个页面的时候,apache将重新去下载对应页面。 CacheLastModifiedFactor 很难说清这个选项的含义,缺省的值是0.1,你只要按照这个值设置就没有问题了。例 如 CacheLastModifiedFactor 0.1 CacheDefaultExpire 对于那些不支持内容有效期的协议,使用这个值作为缺省的有效期,例如 CacheDefaultExpire 1 NoCache 类似于NoProxy和ProxyBlock,定义一个不进行本地缓存的列表,例如 NoCache Freemail.263.net Listen 缺省的http和Proxy服务端口是80和8080。但是你可以定义一些其他的端口接收信息, 例如 Listen 8080 Listen 8081 Listen 192.168.12.21:8080 这个选项在做端口虚拟主机的时候也有用。
|