二、设置缓存规则
我们可以通过缓存规则来决定如何缓存因特网的对象,例如缓存对象的有效期、缓存哪一类对象、如何读取缓存区域的对象等。
(一)、缓存规则的设置
我们利用内置的Microsoft Update缓存规则来说明。单击下图中“缓存规则”标签下的“Microsoft Update缓存规则”→单击右方“任务”标签下的“编辑所选规则”。
î 启用或停用规则
可以通过下图来选择是否启用此规则。
î 应用此规则的目标
可以通过下图来设置此规则所应用的目标,也就是只有当用户要连接这些目标时,才会按这个规则来处理用户的请求。图中的Microsoft Update域名集内包含Microsoft Windows Update等提供更新服务的网站,当用户要连接到这些网站时,就会受此规则的约束。还可以通过图中下半部分来设置不应用此规则的例外。
î HTTP的缓存设置
可以通过下图中的HTTP标签来启用或停用HTTP缓存、设置TTL等。当ISA Server缓存因特网的网页对象后,这些对象在缓存区有一定的有效期限,这个有效期限被称为TTL,在对象的有效期限尚未过期之前,ISA Server可以直接从缓存区读取用户所需的对象,但是如果有效期限已过,则ISA Server可能需要重新从因特网的网站来读取。
然而网页对象的有效期限是如何决定的呢?这个可以从两方面来看:
² 网站已经指定了该网页对象的有效期限
则该对象的有效期限默认就是网站指定的期限。
² 由系统管理员在ISA Server内指定
若网站未指定对象的有效期限,则由系统管理员在ISA Server内的设置来决定该对象的有效期限。
设置对象的TTL(内容年龄的百分比)
以图中20%为例,若对象从建立(或修改)完成到现在已经超过了10小时,则该对象在缓存区的有效期限为10小时×20%=2小时。
TTL时间边界
设置对象有效期限必须介于“不少于”与“不多于”处所指定的时间。
对指定过期的源也应用这些TTL边界
表示即时网站已经指定对象的有效期限,ISA Server还是会忽略这个期限值,并且该采用此画面的设置来决定对象的有限期限。
î FTP的缓存设置
可以通过下图中FTP标签来启用或停用FTP缓存。FTP服务器本身并没有FTP对象(文件)有效期限设置的功能,不过可以在ISA Server内通过此画面来决定FTP对象在ISA Server缓存区的有效期限。
î 缓存存储和检索设置
可以通过下图来设置如何读取缓存区的对象、如何将缓存对象(保存)到ISA Server缓存区。
Ø 从缓存中检索
缓存区除了保存有效期限尚未过期的对象外,那些已经过期的对象可能也还存在于缓存区。此时ISA Server在收到客户端读取对象的请求时,会根据此处的设置来决定是否需要将已经过期的对象传递给客户端:
只有在缓存中存在的对象的一个有效版本时。如果不存在有效版本,则传递请求ISA Server只读取尚未过期的对象,若缓存没有该对象尚未过期的版本,则ISA Server会直接上网读取对象或将此请求转个其他ISA Server。
如果缓存中存在对象的任何版本。如果不存在,则传递请求
只要缓存区有该对象存在,不论是否已经过期,都会将对象传递给客户端。若缓存区没有该对象存在,则ISA Server会直接上网读取对象或将此请求转给其他的ISA Server。
若果缓存中存在对象的任何版本。如果没有任何版本的存在,则丢弃请求
只要缓存区有该对象存在,不论是否已经过期,都会将对象传递给客户端。若缓存区没有该对象存在,就告知客户端无法访问该对象。
Ø 在缓存中保存
动态内容
表示即时动态对象(会被标示为不可缓存)也要缓存
用于离线浏览内容(302,307响应)
表示即时响应是http 302响应、307响应等非缓存对象也要缓存。
内容要求用户身份验证以进行检索
表示要求输入用户帐号与密码的对象也要缓存
î 高级设置
在下图中可以设置
Ø 不缓存此大小的对象
只要对象大小超过设置值,就不缓存该对象,以免占用太多的缓存空间。
Ø 缓存SSL响应
表示要缓存利用SSL安全连接读取的对象。
Ø 启用通过后台智能传输服务接收到的内容的缓存
表示要缓存通过BITS收到的内容。BITS可以在不降低网络效率的情况下传递大量的数据。
(二)、创建缓存规则
系统已经有一个内置的缓存规则,名称默认为规则,如果它符合需求,请直接使用此规则。此默认规则的优先级最低、而且不可以被停用。
如果要另外创建新规则,可以如下图所示在“缓存规则”画面下,单击右方“任务”标签下的“创建缓存规则”。由于创建缓存规则时所牵涉到的选项都已经在前面介绍过了,所以再次我也不再重复说明。
打开“ISA服务器管理”控制台→单击“缓存”→单击“缓存规则”标签,然后通过右边“任务”标签下的“配置缓存设置”来设置高级缓存设置值,如下图所示:
î 缓存上次更改时间未指定的对象
表示即时对象本身没有指定对象的上次修改时间,仍然要缓存此对象。由于无法判断此对象已经存在多久了,因此无法从前面的“缓存规则属性”图片中的设置对象的TTL(内容年龄百分比)选项来决定该对象的有效期限,若对象本身也未指定有效期限(TTL),则ISA Server会将该对象的有效期限设置为“缓存规则属性”图片中的时间边界中“不多于”处的时间。
î 在内存中缓存的URL的最大大小
设置每一个URL在高速缓存(RAM)中所能够占有的最大空间。
î 如果过期对象的网站不能被访问
当客户端提出访问对象的请求时,如果缓存区的对象已经过期,而且ISA Server也无法链接该对象所在的网站,则ISA Server可以:
不返回过期对象(返回一个错误页面)
表示直接传递给客户端一个无法访问该对象的错误网页。
只有在过期为下列情况时才返回过期对象
此时只有该对象的过期时间长度未超过TTL的某个百分比时(通过上图中“小于初始生存时间的百分比”设置),才会传递该过期对象给客户端,例如该对象的TTL为50分钟,此时只要过期时间未超过50×50%=25分钟,而且这个时间不超过“但是不多于(分钟)”处的设置值,则ISA Server仍然会将此对象传递给客户端。
四、删除缓存区的数据
ISA Server缓存包含正向缓存、反向缓存与negative缓存等3项功能。Wimen在学习ISA Server的过程中,negative缓存常常会造成困扰,举个例子来说,网站设置刚开始有问题,此时当然无法访问此网站,但是在此将此网站修改正确后,再来链接网站时,画面上可能还现实无法连接网站信息,这可能是negative缓存所造成的。
当然我们只要等一段时间,让缓存区的数据过期后,就可以正常的连接此网站,不过在我们学习ISA Server过程中,可不想浪费时间等待,此时最快的解决方法就是手动将ISA Server缓存区的数据删除。可以通过以下3个步骤来删除缓存区的数据:
î 停止防火墙服务
在下图中选择“监视”→“服务”→选择Microsoft Firewall→单击右边“任务”标签处的“停止选择的服务”。
î 删除缓存文件
删除下图中文件夹urlcache内的Dirl.cdat文件(假设缓存硬盘驱动器在C:)。
î 重新启动防火墙服务
如下图所示重新启动防火墙服务。