三种典型web服务器Header设置内容过期方法
发布时间:2021-12-14 10:59:05 所属栏目:系统 来源:互联网
导读:一、Internet 信息服务 (IIS)的内容过期设置 如果IIS 网站中有时间敏感信息,可以配置设置来保证过期信息不被代理服务器或 Web 浏览器缓存。可以配置网站内容,使之在任 何的时间自动过期。当启用内容过期时,Web 浏览器将比较当前日期和截止日期,以便决定是
一、Internet 信息服务 (IIS)的内容过期设置 如果IIS 网站中有时间敏感信息,可以配置设置来保证过期信息不被代理服务器或 Web 浏览器缓存。可以配置网站内容,使之在任 何的时间自动过期。当启用内容过期时,Web 浏览器将比较当前日期和截止日期,以便决定是显示缓存页还是从服务器请求更新的页 。Microsoft ASP.NET 这样的服务器端技术可用于动态更改提供的内容。通常,时间敏感信息只限于单个文件、目录或网站;不过,您也可以为某台计算机上的所有网站设置内容过期。 必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS管理器 在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%system32inetsrviis.msc"。 设置网站内容的过期时间 1. 在 IIS 管理器中,展开本地计算机;右键单击要设置内容过期的网站、虚拟目录或文件,然后单击“属性”。 2. 单击“HTTP 头”选项卡。 3. 选中“启用内容过期”复选框。 4. 单击“立即过期”、“此时间段后过期”或“过期时间”,然后在对应的框中输入所需的过期信息。 5. 单击“确定”。 二、APACHE服务的内容过期设置 Apache配置摘录及解释 i. 过期相关设置 LoadModule headers_module modules/mod_headers.so #Load 修改header的模块。 LoadModule expires_module modules/mod_expires.so #Load 设定过期header的模块。 Header append Via: CCN-BJ-4-502 #增加一个Via header,值配置成设备的hostname。 KeepAliveTimeout 60 #设置连接的保持时间为60秒。 ExpiresActive On #启用过期header功能。 ExpiresDefault A604800 #缺省过期时间为“访问后的604800秒” <Directory /data/download> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all ExpiresByType text/html A300 #text/html类型文件的过期设置为“访问后的300秒” ExpiresByType text/css A259200 #text/css类型文件的过期设置为“访问后的259200秒” ExpiresByType application/x-javascript A300 # application/x-javascript类型文件的过期设置为“访问后的300秒” ExpiresByType image/gif A2592000 #image/gif类型文件的过期设置为“访问后的2592000秒” ExpiresByType application/x-shockwave-flash A2592000 # application/x-shockwave-flash类型文件的过期设置为“访问后的2592000秒” </Directory> 上述配置文件中load的两个模块:mod_headers.so 和mod_expires.so 可以让Apache具有对header的一些定制功能。 ExpiresByType: 表示按照文件类型-MIME-TYPE设定过期策略; A300: 表示在Access后300秒后过期; ExpiresByType text/css A2592000: 表示Mime type是text/css的文件,在Access后2592000秒过期。 ExpiresDefault A604800: 表示除了单独制定的文件类型等过期策略外的其他内容,按照这个缺省的策略设定:访问后604800秒过期。 上面的方法可以实现根据web发布的不同文件类型,针对不同的发布目录进行过期策略设置。在按照如上方法设置后,Apache会自动的产生两个相关的http header,举例如下: HTTP/1.1 200 OK Date: Tue, 27 Mar 2007 17:44:21 GMT Server: Apache/2.0.54 (Unix) Last-Modified: Thu, 25 Jan 2007 07:45:45 GMT ETag: “72df3a-93-99499c40” Accept-Ranges: bytes Content-Length: 147 Cache-Control: max-age=2592000 Expires: Thu, 26 Apr 2007 17:44:21 GMT Via: CCN-BJ-4-575 Keep-Alive: timeout=60, max=100 Connection: Keep-Alive Content-Type: image/gif Length: 147 [image/gif] 其中:Date + Max-age = Expires. Max-age是个时间长度,对应web server上面设置的过期时间;Expires是根据max-age算出来的过期时间点,两者是一致的,不同cache在判断内容是否过期时会严格比较 系统时间和上述过期时间,或者比较age(在cache中存住的时间长度)和max-age的值。 三、lighttpd lighttpd默认是没有开启expire模块的,需要我们在使用是手工开启这个模块支持。把mod_expire前面的“#”号去掉。 # vi /usr/local/lighttpd/etc/lighttpd.conf "mod_expire", 设定过期时间 * 设定指定url的过期时间: expire.url = ( "/images/" => "access 3 hours", "/admin/" => "access 3 hours", "/area/" => "access 3 hours", "/calendar/" => "access 3 hours", "/common/" => "access 3 hours", "/front/" => "access 3 hours", "/inc/" => "access 3 hours", "/jeditor/" => "access 3 hours", "/js/" => "access 3 hours", "/script/" => "access 3 hours", "/theme/" => "access 3 hours", "/upload/" => "access 3 hours", "/view/" => "access 3 hours", "/help/" => "access 3 hours", "/htm/" => "access 5 minutes" ) 设置Etag 在配置文件中增加,etag.use-inode="disable"(i节点不参与etag的运算),保证多台服务器生成的Etag值一致。 (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |