19-Web Cache配置
本章节下载: 19-Web Cache配置 (367.63 KB)
1.9.1 配置Web Cache双网关场景下的流量互引功能
1.9.2 开启Web Cache对QueryString请求的文件的缓存功能
1.9.3 配置Web Cache忽略指定的HTTP/HTTPS响应头类型
Web Cache(网站缓存)是将用户通过HTTP/HTTPS协议访问过的指定地址服务器的Web页面上的内容,缓存在本地,在缓存文件的老化时间内用户访问相同内容时,直接从本地响应的一种缓存功能,从而减少设备到服务器的访问流量、降低传输成本、缓解目的端服务器压力,同时提高了用户访问网站的速度及响应时间,增强了用户体验。
需要缓存的Web页面内容以文件的形式存放于Web Cache的工作路径中。缓存文件总大小超出缓存允许存储的最大空间时,最旧的缓存文件将被覆盖。
本文中描述的侦听端口分为两类端口。
· Web Cache侦听端口:设备提供Web Cache服务的端口,只有发送给该端口的报文,才会送至Web Cache进程处理。
· Web服务器侦听端口:Web服务器上提供Web服务的端口,只有发送给该端口的报文,才会送至Web进程处理。
每个Web Cache缓存文件的老化时间为30天。设备收到相同Web内容的请求或重启时,会重新计算该缓存文件的老化时间。若超过老化时间仍没有用户请求该缓存文件,则删除该缓存文件。
Web Cache的工作原理如下所示:
图1-1 Web Cache工作原理示意图
(1) 用户主机(Host)发送给Web服务器(Server)的HTTP/HTTPS GET请求报文到达设备(Device)后,若请求服务的目的端口为指定的Web服务器侦听端口,则设备会将该目的端口转换为对应的Web Cache侦听端口以触发Web Cache进程。
(2) Web Cache获取报文的URL,依据URL在Web Cache工作路径下的各个缓存文件中进行查找:
¡ 若找到匹配项,则构建响应报文,并将找到的缓存内容直接返回给主机。
¡ 若未找到匹配项,则继续进行下面的处理。
(3) 设备重新封装HTTP/HTTPS GET请求报文发送给Web服务器。
(4) 当设备收到服务器的响应后,检查是否为可以缓存的文件类型:
¡ 若可以缓存,会将缓存内容保存到工作路径下的缓存文件中,并将缓存内容构建成响应报文发送给主机。
¡ 若不允许缓存,则直接将缓存内容构建成响应报文发送给主机。
设备发送响应报文时,若Web Cache的侦听端口和Web服务器的侦听端口不一致,则设备会将响应报文的源端口替换回Web服务器的侦听端口号后发送。
Web Cache需要安装License才能使用。未安装license时,重启设备会自动删除Web Cache的相关配置。有关License的详细介绍,请参见“基础配置指导”中的“License管理”。
请先配置允许缓存Web页面上的文件类型和Web Cache的工作路径,再开启Web Cache功能。如果在Web Cache运行过程中需要修改Web Cache参数,需先关闭Web Cache功能,完成修改后再次开启。
Web Cache的配置任务如下:
(2) (可选)配置Web Cache源或目的过滤规则
(3) 配置Web Cache侦听端口号
(5) (可选)配置Web Cache扩展功能
¡ 开启Web Cache对QueryString请求的文件的缓存功能
¡ 配置Web Cache忽略指定的HTTP/HTTPS响应头类型
(6) 开启Web Cache功能
通过配置本功能,可对Web Cache能缓存的文件进行过滤。管理员可设置三种过滤规则:
· 通过文件类型进行过滤。
· 通过文件名称进行过滤。
· 通过文件扩展名进行过滤。
其中,文件类型过滤规则必须配置,Web Cache才能开始缓存Web资源,当上述三种方式均配置时,则满足其中任一配置的Web资源都可以被缓存,优先使用文件名进行完全匹配。
修改Web Cache的文件过滤规则前,需要关闭Web Cache功能,完成修改后再次开启。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置允许缓存Web页面上的文件类型。
cached-data { apk | bmp | doc | docx | gif | gzip | ipa | jar | jpg | jpeg | mp4 | pdf | png | ppt | pptx | rar | swf | tar | txt | xls | xlsx | zip } *
缺省情况下,未配置允许缓存Web页面上的文件类型,设备将不会缓存任何文件类型的Web页面上的内容。
(4) (可选)配置允许缓存Web页面上的文件。
cached-file file-name
缺省情况下,未配置Web Cache允许缓存的文件。
(5) (可选)配置Web Cache允许缓存的文件扩展名。
cached-extension-name extension-name
缺省情况下,未配置可缓存的文件扩展名。
可通过多次执行本命令,配置多个Web Cache允许缓存的文件扩展名,最多同时存在64个文件扩展名。
缺省情况下,Web Cache可缓存所有Web服务器的数据。通过配置本功能,可以对Web Cache源或目的进行过滤,即通过引入对象组,使Web Cache仅对指定客户端请求的Web资源进行缓存,或仅对指定Web服务器的Web资源进行缓存。一个对象组可以和多个用户主机或Web服务器关联。
引用了对象组后,设备收到用户主机发送给Web服务器的HTTP/HTTPS GET请求报文时,会检查是否允许缓存该服务器或是否允许缓存该用户主机请求的Web资源,若允许,将报文送达至设备中的Web Cache,否则直接转发到服务器。
Web Cache使用本功能引用了未创建地址对象的空对象组时,将不对任何Web服务器的Web资源进行缓存、即拒绝任何客户端的Web资源缓存请求。
配置本功能前:
· 请先配置IPv4或IPv6地址对象组。有关地址对象组功能的详细介绍,请参见“安全配置指导”中的“对象组”。
· 需要关闭基于HTTP的Web Cache功能,完成修改后再次开启。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置引用IPv4或IPv6地址对象组来对Web Cache可缓存的Web数据进行过滤。
object-group [ source ] { ip | ipv6 } object-group-name
缺省情况下,Web Cache未对可缓存的Web数据进行过滤,设备将缓存所有服务器指定类型的工作数据。
缺省情况下,Web Cache侦听HTTP报文的端口为4180,可缓存HTTP报文侦听端口为80的Web服务器资源;Web Cache侦听HTTPS报文的端口为2043,可缓存HTTPS报文侦听端口为443的Web服务器资源。出现以下任一场景时,可以配置本功能:
· Web Cache的缺省侦听端口被本设备的其它业务占用,Web Cache功能无法开启。
· 缓存资源所属的Web服务器侦听端口不是80(HTTP)或443(HTTPS)。
如需缓存多个Web服务器上的数据,且这些Web服务器侦听的端口不同,则需要多次配置本功能,将Web Cache侦听端口与Web服务器侦听端口一一对应,每种协议(HTTP/HTTPS)最多可配置8组对应关系。
多次配置本功能,将一个Web Cache侦听端口绑定多个Web服务器侦听端口、或者多个Web Cache侦听端口绑定同一个Web服务器侦听端口时,均会将配置覆盖,仅最新配置生效。
配置本功能前:
· 需要关闭Web Cache功能,完成修改后再次开启。
· 请使用display tcp verbose命令来查看当前设备正在使用的TCP端口号,以确保指定的端口号是未被其他业务使用的端口号,否则本功能配置失败。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置Web Cache的TCP侦听端口号。
¡ 配置Web Cache侦听HTTP报文的端口号。
listen-port port-number [ server-port server-port-number ]
¡ 配置Web Cache侦听HTTPS报文的端口号。
https listen-port port-number [ server-port server-port-number ]
通过配置本功能,可以指定Web Cache的工作路径,设备存储空间有限时,可通过cache-limit命令来限制所有Web Cache缓存文件的总大小的最大值。
指定Web Cache的工作路径时,需要注意的是:
· 指定的工作路径必须是创建Web Cache视图时指定的slot上的路径。否则,配置失败。
· 配置Web Cache的工作路径前,请保证该目录下没有与工作路径最后一级名称相同且不带文件扩展名的文件存在,否则,Web Cache异常退出。
· Web Cache的缓存文件和工作数据通常会占用较大的存储空间(GB级别),建议工作路径配置在存储空间较大的存储介质上。
配置Web Cache的文件存储参数前,需要关闭Web Cache功能,完成修改后再次开启。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置Web Cache工作路径。
file-directory directory
缺省情况下,未配置Web Cache工作路径。
(4) (可选)配置所有Web Cache缓存文件总大小的最大值。
cache-limit size
缺省情况下,所有Web Cache缓存文件的总大小的最大值为4GB。
指定所有Web Cache缓存文件的总大小的最大值必须小于工作路径中可存储数据的最大值。
本功能用于Web Cache双网关场景,如图1-2所示。在本场景中,Device A和Device B通过接入交换机同时为用户提供Web Cache缓存服务,Web Cache服务的上下行链路均存在等价路径。当用户访问Web资源的上、下行路径不一致时,例如,用户访问Web资源的上行流量经过Device A,而下行流量却经过Device B;此时由于Device B上没有用户记录,无法将下行流量转发给用户,导致用户访问Web资源失败。
在本场景中,上行流量为用户主机发送往Web服务器的HTTP/HTTPS请求报文流量,下行流量为Web服务器返回给用户主机的HTTP/HTTPS响应报文流量。网关设备之间的引流通道为直连的物理链路或GRE隧道,以保证Web Cache网关与对端设备之间的IP连通性。
图1-2 用户访问Web资源失败示意图
通过在Device B上配置本功能,可以让设备和对端网关建立流量互引关系,如图1-3所示:建立互引关系后,如果Device B收到了无法查找到用户的Web Cache下行流量,Device B就会将下行流量从指定的通道接口转发给对端设备Device A处理,使Device A能够正确代理用户所需的Web资源。
在配置与指定对端设备建立流量互引关系前,需要完成以下任务:
· 建立网关之间的引流通道,以保证下行流量能通过引流通道到达对端设备。
· 关闭Web Cache功能,完成修改后再次开启。
在配置dual-gateway-channel命令时,请确保指定对端设备的IPv4地址可达,并且在路由转发表中该地址的出接口为本命令配置的通道接口。
可通过多次执行dual-gateway-channel命令,在多个VPN实例下分别建立流量互引关系。指定公网或同一VPN实例多次执行该命令时,最后一次执行的命令生效。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置与对端设备建立流量互引关系。
dual-gateway-channel [ vpn-instance vpn-instance-name ] interface interface-type interface-number peer ipv4-address
缺省情况下,设备未与对端设备建立流量互引关系。
缺省情况下,URL中QueryString请求的文件不会被Web Cache缓存。配置本功能后,Web Cache可以缓存QueryString请求的文件。Web Cache会结合其他的文件过滤规则最终决定是否缓存QueryString请求的文件。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 开启Web Cache对QueryString请求的文件的缓存功能。
querystring-file-cache enable
缺省情况下,Web Cache对QueryString请求的文件的缓存功能处于关闭状态。
Cache-Control、Set-Cookie以及Vary响应头,对Web Cache服务缓存Web资源的影响如下:
· Web服务器返回的HTTP/HTTPS响应报文中携带Cache-Control响应头时,根据Cache-Control响应头包含的指令,Web Cache可能不会缓存本次请求的Web资源。
· Web服务器返回的HTTP/HTTPS响应报文中携带Set-Cookie响应头时,Web Cache不会缓存本次请求的Web资源。
· Web服务器返回的HTTP/HTTPS响应报文中携带Vary响应头时,根据Vary消息的取值,Web Cache可能不会缓存本次请求的Web资源。
配置本功能后,Web Cache会忽略指定的响应头类型,以确保能够缓存用户请求的Web资源。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 配置Web Cache忽略指定的HTTP/HTTPS响应头类型。
cache-ignore { cache-control | set-cookie | vary } *
缺省情况下,Web服务器返回的HTTP/HTTPS响应头类型影响Web Cache服务是否缓存资源。
开启Web Cache功能前必须配置允许缓存Web页面上的文件类型和Web Cache的工作路径。
在如下情况开启Web Cache功能时,会使已配置的Web Cache功能重启:
· 已配置基于HTTP的Web Cache功能,再开启基于HTTPS的Web Cache功能。
· 已配置基于HTTPS的Web Cache功能,再开启基于HTTP的Web Cache功能。
· 已配置基于HTTP和HTTPS的Web Cache功能,关闭其中的一项。
当用户使用HTTPS访问Web服务器,且通过开启了基于HTTPS的Web Cache功能的设备进行Web资源缓存时,会出现证书告警提示——因为WebCache设备和用户主机建立SSL连接使用的是本设备的数字证书,此证书为私有CA签发,无法通过用户主机HTTPS客户端的验证。此时,可以将Web Cache设备上Web Cache工作路径下名称为webcache_cacert.crt的CA根证书文件导出,并添加到用户主机的“受信任的证书颁发机构”中,用户主机会将Web Cache设备作为其数字证书的CA,以便通过数字证书的校验,避免出现证书告警提示。
(1) 进入系统视图。
system-view
(2) 创建并进入Web Cache视图。
web-cache slot slot-number
(3) 开启Web Cache功能。请至少选择其中一项进行配置。
¡ 开启基于HTTP的Web Cache功能。
http enable
缺省情况下,基于HTTP的Web Cache功能处于关闭状态。
¡ 开启基于HTTPS的Web Cache功能。
https enable
缺省情况下,基于HTTPS的Web Cache功能处于关闭状态。
可在任意视图下执行以下命令,显示Web Cache的统计信息。
display web-cache [ history ] [ last { day | 30-days | 365-days | hour | minute | week } | verbose ]
如图1-4所示,Server A、Service B和Service C为HTTP服务器,侦听HTTP报文的端口号分别为8001、8002、80。在Device上使用Web Cache功能,达到缓存页面、节省带宽、缓解服务器压力的目的。
图1-4 配置基于HTTP的Web Cache组网图
请按照图1-4配置各接口的IP地址和子网掩码,并确保HTTP服务器的IPv4地址对于Device可达。
(1) 创建并进入Web Cache视图
<Device> system-view
[Device] web-cache slot 1
(2) 配置Web Cache参数。
# 配置Web Cache的工作路径为flash:/webcache。
[Device-web-cache-slot1] file-directory slot1#flash:/webcache
# 配置Service A侦听HTTP报文的端口号对应的Web Cache侦听端口号4001。
[Device-web-cache-slot1] listen-port 4001 server-port 8001
# 配置Service B侦听HTTP报文的端口号对应的Web Cache侦听端口号4002。
[Device-web-cache-slot1] listen-port 4002 server-port 8002
# 配置Service C侦听HTTP报文的端口号对应的Web Cache侦听端口号4003。
[Device-web-cache-slot1] listen-port 4003
# 配置Web Cache缓存文件大小的最大值为10G。
[Device-web-cache-slot1] cache-limit 10
# 配置允许缓存Web页面上文件类型为doc和docx的内容。
[Device-web-cache-slot1] cached-data doc docx
# 配置允许缓存Web页面上文件扩展名为cab的内容。
[Device-web-cache-slot1] cached-extension-name cab
(3) 开启基于HTTP的Web Cache功能。
[Device-web-cache-slot1] http enable
# 主机第一次向三台服务器发送HTTP请求时,在设备上查看Web Cache的概要信息。
[Device-web-cache-slot1] display web-cache
Capability information
Cache path: slot1#flash:/webcache/proxy/cache
Max connections: 1022
Max cache size: 10GB
Current state information
Cache memory: 25.0MB
Cache count: 3
Statistics for past 1 minute
ConnectTop: 4
CacheTop: 25.0MB
Bandwidth saved: 0
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 0%
Hit count: 0 Miss count: 3
...
Statistics for past 365 days
ConnectTop: 4
CacheTop: 25.0MB
Bandwidth saved: 0
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 0%
Hit count: 0 Miss count: 3
# 主机第二次向三台服务器发送相同HTTP请求时,在设备上查看Web Cache的概要信息。
[Device-web-cache-slot1] display web-cache
Capability information
Cache path: slot1#flash:/webcache/proxy/cache
Max connections: 1022
Max cache size: 10GB
Current state information
Cache memory: 25.0MB
Cache count: 3
Statistics for past 1 minute
ConnectTop: 3
CacheTop: 25.0MB
Bandwidth saved: 3.3Mbps
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 0
Download size: 0
CacheHitRate: 100%
Hit count: 3 Miss count: 0
...
Statistics for past 365 days
ConnectTop: 3
CacheTop: 25.0MB
Bandwidth saved: 3.3Mbps
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 50.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 100%
Hit count: 3 Miss count: 3
通过对比两次统计信息可知,第一次显示信息中统计最近一分钟内的Miss count计数为3,第二次显示信息中统计最近一分钟内的Hit count计数为3,说明第二次命中Web Cache缓存。Bandwidth saved是指设备节省的带宽,Download size是指服务器到设备的数据,第二次Download size没有增加,Bandwidth saved增加,说明服务器到设备没有流量经过,Web Cache功能生效。
如图1-5所示,Server A、Service B和Service C为HTTPS服务器,侦听HTTPS报文的端口号分别为8001、8002、443。在Device上使用Web Cache功能,达到缓存页面、节省带宽、缓解服务器压力的目的。
图1-5 配置基于HTTPS的Web Cache组网图
请按照图1-5配置各接口的IP地址和子网掩码,并确保HTTPS服务器的IPv4地址对于Device可达。
(1) 创建并进入Web Cache视图
<Device> system-view
[Device] web-cache slot 1
(2) 配置Web Cache参数。
# 配置Web Cache的工作路径为flash:/webcache。
[Device-web-cache-slot1] file-directory slot1#flash:/webcache
# 配置Service A侦听HTTPS报文的端口号对应的Web Cache侦听端口号4001。
[Device-web-cache-slot1] https listen-port 4001 server-port 8001
# 配置Service B侦听HTTPS报文的端口号对应的Web Cache侦听端口号4002。
[Device-web-cache-slot1] https listen-port 4002 server-port 8002
# 配置Service C侦听HTTPS报文的端口号对应的Web Cache侦听端口号4003。
[Device-web-cache-slot1] https listen-port 4003
# 配置Web Cache缓存文件大小的最大值为10G。
[Device-web-cache-slot1] cache-limit 10
# 配置允许缓存Web页面上文件类型为doc和docx的内容。
[Device-web-cache-slot1] cached-data doc docx
# 配置允许缓存Web页面上文件扩展名为cab的内容。
[Device-web-cache-slot1] cached-extension-name cab
(3) 开启基于HTTPS的Web Cache功能。
[Device-web-cache-slot1] https enable
# 主机第一次向三台服务器发送HTTPS请求时,在设备上查看Web Cache的概要信息。
[Device-web-cache-slot1] display web-cache
Capability information
Cache path: slot1#flash:/webcache/proxy/cache
Max connections: 1022
Max cache size: 10GB
Current state information
Cache memory: 25.0MB
Cache count: 3
Statistics for past 1 minute
ConnectTop: 4
CacheTop: 25.0MB
Bandwidth saved: 0
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 0%
Hit count: 0 Miss count: 3
...
Statistics for past 365 days
ConnectTop: 4
CacheTop: 25.0MB
Bandwidth saved: 0
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 0%
Hit count: 0 Miss count: 3
# 主机第二次向三台服务器发送相同HTTPS请求时,在设备上查看Web Cache的概要信息。
[Device-web-cache-slot1] display web-cache
Capability information
Cache path: slot1#flash:/webcache/proxy/cache
Max connections: 1022
Max cache size: 10GB
Current state information
Cache memory: 25.0MB
Cache count: 3
Statistics for past 1 minute
ConnectTop: 3
CacheTop: 25.0MB
Bandwidth saved: 3.3Mbps
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 25.0MB
Download speed: 0
Download size: 0
CacheHitRate: 100%
Hit count: 3 Miss count: 0
...
Statistics for past 365 days
ConnectTop: 3
CacheTop: 25.0MB
Bandwidth saved: 3.3Mbps
Cached data transmission speed: 3.3Mbps
Cached data transmitted: 50.0MB
Download speed: 3.3Mbps
Download size: 25.0MB
CacheHitRate: 100%
Hit count: 3 Miss count: 3
通过对比两次统计信息可知,第一次显示信息中统计最近一分钟内的Miss count计数为3,第二次显示信息中统计最近一分钟内的Hit count计数为3,说明第二次命中Web Cache缓存。Bandwidth saved是指设备节省的带宽,Download size是指服务器到设备的数据,第二次Download size没有增加,Bandwidth saved增加,说明服务器到设备没有流量经过,Web Cache功能生效。
Web Cache功能启动失败。
原因可能是配置侦听端口已被其他功能使用,不能重复侦听。
当配置的Web Cache的TCP侦听端口正在被其他应用侦听时,启动Web Cache会失败,通过display tcp verbose命令查看到当前正在被侦听的端口,配置未被侦听的端口为Web Cache的TCP侦听端口。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!