如何在 apache 中设置缓存有效时间

如何在 apache 中设置缓存有效时间,第1张

在 apache 中设置缓存有效时间方法:启动和配置 Expires

打开 httpd.conf 文件(比如我的是在 F:\wamp\bin\apache\Apache2.2.17\conf 下),找到这一行:

复制代码#LoadModule expires_module modules/mod_expires.so

去掉注释(井号),然后再加上这么两行,再重启下apache,就 ok 了:

复制代码<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType text/html A1000

</IfModule>

我们看到 max-age 字段也出现在了响应头中,其实它是根据 Expires 的设置自动填充的。

其他设置类似:复制代码#启用expires_module模块

LoadModule expires_module modules/mod_expires.so

# 启用有效期控制

ExpiresActive On

# GIF有效期为1个月

ExpiresByType image/gif A2592000

# HTML文档的有效期是最后修改时刻后的一星期

ExpiresByType text/html M604800

#以下的含义类似

ExpiresByType text/css "now plus 2 months"

ExpiresByType text/js "now plus 2 days"

ExpiresByType image/jpeg "access plus 2 months"

ExpiresByType image/bmp "access plus 2 months"

ExpiresByType image/x-icon "access plus 2 months"

ExpiresByType image/png "access plus 2 months"

将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。

缓冲器为暂时置放输出或输入资料的内存。缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。

<%Dim time2,time1

time1=timer

Url = "http://www.ourcy.com/index2.asp"

cacheTime=600   '缓存时间,单位为s秒

'强制生成!

If Request.QueryString("g")<>"" Then Call makecache()

'判断 自动生成!

If application("ourcyindex")<>"" And isDate(application("tqexpire_ourcyindex")) Then '如果缓存的日期存在并且符合时间日期格式

    If CDate(application("tqexpire_ourcyindex"))<Now()  Then makecache() '如果缓存到期时间小于了现在的时间,就是过期了,调用生成缓存过程。

Else

     makecache()'如果缓存日期不存在或者不符合时间日期格式,直接调用生成过程。

End If

time2=timer

'这是我为了去掉我站内的执行时间而进行的替换,你可以不管,直接输出application("ourcyindex")就行了

response.write Replace(application("ourcyindex"),"info@ourcy.com","info@ourcy.com 执行时间 "& FormatNumber((time2-time1)*1000,1) " 毫秒 缓存过期:"& application("tqexpire_ourcyindex")"")

'定义生成缓存过程

Sub makecache

     List_PageCode=getHTTPPage(Url)

     application.lock

     application("ourcyindex")=List_PageCode

     application("tqexpire_ourcyindex")=dateadd("s",cacheTime,Now())

     application.unlock

End Sub

Function getHTTPPage(url)

     IF(IsObjInstalled("Microsoft.XMLHTTP") = False)THEN

         Response.Write "<br><br>服务器不支持Microsoft.XMLHTTP组件"

         Err.Clear

         Response.End

     END IF

    On Error Resume Next

    Dim http

     SET http=Server.CreateObject("Msxml2.XMLHTTP")

     Http.open "GET",url,False

     Http.send()

     IF(Http.readystate<>4)THEN

        Exit Function

     END IF

     getHTTPPage=BytesToBSTR(Http.responseBody,"GB2312")

     SET http=NOTHING

     IF(Err.number<>0)THEN

         Response.Write "<br><br>获取文件内容出错"

        'Response.End

         Err.Clear

     END IF  

End Function

        

Function BytesToBstr(CodeBody,CodeSet)

    Dim objStream

     SET objStream = Server.CreateObject("adodb.stream")

     objStream.Type = 1

     objStream.Mode =3

     objStream.Open

     objStream.Write CodeBody

     objStream.Position = 0

     objStream.Type = 2

     objStream.Charset = CodeSet

     BytesToBstr = objStream.ReadText

     objStream.Close

     SET objStream = NOTHING

End Function

'===========================================

'作   用:检查组件是否已经安装

'返回值:True   ----已经安装

'         False ----没有安装

'===========================================

Function IsObjInstalled(objName)

    On Error Resume Next

     IsObjInstalled = False

     Err = 0

    Dim testObj

     SET testObj = Server.CreateObject(objName)

     IF(0 = Err)THEN IsObjInstalled = True

     SET testObj = NOTHING

     Err = 0

End Function

Function cleanTime(str)

Dim re

Set re=new regExp

re.pattern="(\执行时间)(.*?)(\毫秒)"

re.IgnoreCase =false

re.Global=True

str=re.Replace(str,"")

cleanTime=str

End Function

%>

这是一个缓存页面的做法,有设置时间,你可以直接调用它的做法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11342269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存