导航:首页 > 配服务器 > 服务器页面如何缓存

服务器页面如何缓存

发布时间:2022-04-27 05:15:25

1. 服务器缓存怎么设置啊

双核cpu 用ok缓存,是单核心cpu用liunx的缓存

2. nginx如何缓存动态JSP页面

主要是在需要缓存的路径加proxy_cache,而后端动态页面也需要做相应的处理,否则无法被nginx缓存。(或者nginx配置处加上proxy_ignore_headers)

检测到是代理服务器访问的时候,给动态页面加上和静态页面一致的头部信息,例如:

3. asp.net 服务器缓存技术

实现

要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可。

<%@ OutputCache Duration="60" VaryByParam="*" %>

如同其他页面指令一样,该指令应该出现在 ASPX 页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。

Duration

必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。

Location

指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或 ServerAndClient。

VaryByParam

必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。"none" 表示没有变动。"*" 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 ";" 进行分隔。

VaryByHeader

基于指定的标头中的变动改变缓存条目。

VaryByCustom

允许在 global.asax 中指定自定义变动(例如,"Browser")。

利用必需的 Duration 和 VaryByParam 选项的组合可以处理大多数情况。例如,如果您的产品目录允许用户基于 categoryID 和页变量查看目录页,您可以用参数值为 "categoryID;page" 的 VaryByParam 将产品目录缓存一段时间(如果产品不是随时都在改变,一小时还是可以接受的,因此,持续时间是 3600 秒)。这将为每个种类的每个目录页创建单独的缓存条目。每个条目从其第一个请求算起将维持一个小时。

VaryByHeader 和 VaryByCustom 主要用于根据访问页面的客户端对页面的外观或内容进行自定义。同一个 URL 可能需要同时为浏览器和移动电话客户端呈现输出,因此,需要针对不同的客户端缓存不同的内容版本。或者,页面有可能已经针对 IE 进行了优化,但需要能针对 Netscape 或 Opera 完全降低优化(而不仅仅是破坏页面)。后一个例子非常普遍,我们将提供一个说明如何实现此目标的示例:

示例:VaryByCustom 用于支持浏览器自定义

为了使每个浏览器都具有单独的缓存条目,VaryByCustom 的值可以设置为 "browser"。此功能已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本。

<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser" %>

片段缓存,用户控件输出缓存

缓存整个页面通常并不可行,因为页面的某些部分是针对用户定制的。不过,页面的其他部分是整个应用程序共有的。这些部分最适合使用片段缓存和用户控件进行缓存。菜单和其他布局元素,尤其是那些从数据源动态生成的元素,也应该用这种方法进行缓存。如果需要,可以将缓存的控件配置为基于对其控件(或其他属性)的更改或由页面级输出缓存支持的任何其他变动进行改变。使用同一组控件的几百个页面还可以共享那些控件的缓存条目,而不是为每个页面保留单独的缓存版本。

实现

片段缓存使用的语法与页面级输出缓存一样,但其应用于用户控件(.ascx 文件)而不是 Web 窗体(.aspx 文件)。除了 Location 属性,对于 OutputCache 在 Web 窗体上支持的所有属性,用户控件也同样支持。用户控件还支持名为 VaryByControl 的 OutputCache 属性,该属性将根据用户控件(通常是页面上的控件,例如,DropDownList)的成员的值改变该控件的缓存。如果指定了 VaryByControl,可以省略 VaryByParam。最后,在默认情况下,对每个页面上的每个用户控件都单独进行缓存。不过,如果一个用户控件不随应用程序中的页面改变,并且在所有页面都使用相同的名称,则可以应用 Shared="true" 参数,该参数将使用户控件的缓存版本供所有引用该控件的页面使用。

示例

<%@ OutputCache Duration="60" VaryByParam="*" %>

该示例将缓存用户控件 60 秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。

<%@ OutputCache Duration="60" VaryByParam="none"

VaryByControl="CategoryDropDownList" %>

该示例将缓存用户控件 60 秒,并且将针对 CategoryDropDownList 控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。

<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"

Shared="true %>

最后,该示例将缓存用户控件 60 秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的 ID 引用该控件即可)。
页面级和用户控件级输出缓存的确是一种可以迅速而简便地提高站点性能的方法,但是在 ASP.NET 中,缓存的真正灵活性和强大功能是通过 Cache 对象提供的。使用 Cache 对象,您可以存储任何可序列化的数据对象,基于一个或多个依赖项的组合来控制缓存条目到期的方式。这些依赖项可以包括自从项被缓存后经过的时间、自从项上次被访问后经过的时间、对文件和/或文件夹的更改以及对其他缓存项的更改,在略作处理后还可以包括对数据库中特定表的更改。

在 Cache 中存储数据

在 Cache 中存储数据的最简单的方法就是使用一个键为其赋值,就像 HashTable 或 Dictionary 对象一样:

Cache["key"] = "value";

这种做法将在缓存中存储项,同时不带任何依赖项,因此它不会到期,除非缓存引擎为了给其他缓存数据提供空间而将其删除。要包括特定的缓存依赖项,可使用 Add() 或 Insert() 方法。其中每个方法都有几个重载。Add() 和 Insert() 之间的唯一区别是,Add() 返回对已缓存对象的引用,而 Insert() 没有返回值(在 C# 中为空,在 VB 中为 Sub)。

示例

Cache.Insert("key", myXMLFileData, new

System.Web.Caching.CacheDependency(Server.MapPath("users.xml")));

该示例可将文件中的 xml 数据插入缓存,无需在以后请求时从文件读取。 CacheDependency 的作用是确保缓存在文件更改后立即到期,以便可以从文件中提取最新数据,重新进行缓存。如果缓存的数据来自若干个文件,还可以指定一个文件名的数组。

Cache.Insert("dependentkey", myDependentData, new

System.Web.Caching.CacheDependency(new string[] {}, new string[]

{"key"}));

该示例可插入键值为 "key" 的第二个数据块(取决于是否存在第一个数据块)。如果缓存中不存在名为 "key" 的键,或者如果与该键相关联的项已到期或被更新,则 "dependentkey" 的缓存条目将到期。

Cache.Insert("key", myTimeSensitiveData, null,

DateTime.Now.AddMinutes(1), TimeSpan.Zero);

绝对到期:此示例将对受时间影响的数据缓存一分钟,一分钟过后,缓存将到期。注意,绝对到期和滑动到期(见下文)不能一起使用。

Cache.Insert("key", myFrequentlyAccessedData, null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

TimeSpan.FromMinutes(1));

滑动到期:此示例将缓存一些频繁使用的数据。数据将在缓存中一直保留下去,除非数据未被引用的时间达到了一分钟。注意,滑动到期和绝对到期不能一起使用。

更多选项

除了上面提到的依赖项,我们还可以指定项的优先级(依次为 low、high、NotRemovable,它们是在 System.Web.Caching.CacheItemPriority 枚举中定义的)以及当缓存中的项到期时调用的 CacheItemRemovedCallback 函数。大多数时候,默认的优先级已经足够了 — 缓存引擎可以正常完成任务并处理缓存的内存管理。CacheItemRemovedCallback 选项考虑到一些很有趣的可能性,但实际上它很少使用。不过,为了说明该方法,我将提供它的一个使用示例:

CacheItemRemovedCallback 示例

System.Web.Caching.CacheItemRemovedCallback callback = new System.Web.Caching.CacheItemRemovedCallback (OnRemove);

Cache.Insert("key",myFile,null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

TimeSpan.Zero,

System.Web.Caching.CacheItemPriority.Default, callback);

. . .

public static void OnRemove(string key,

object cacheItem,

System.Web.Caching.CacheItemRemovedReason reason)

{

AppendLog("The cached value with key " + key +

" was removed from the cache. Reason: " +

reason.ToString());

}

该示例将使用 AppendLog() 方法(这里不讨论该方法,请参阅 Writing Entries to Event Logs)中定义的任何逻辑来记录缓存中的数据到期的原因。通过在从缓存中删除项时记录这些项并记录删除的原因,您可以确定是否在有效地使用缓存或者您是否可能需要增加服务器上的内存。注意,callback 是一个静态(在 VB 中为 Shared)方法,建议使用该方法的原因是,如果不使用它,保存回调函数的类的实例将保留在内存中,以支持回调(对 static/Shared 方法则没有必要)。
该特性有一个潜在的用处 — 在后台刷新缓存的数据,这样用户永远都不必等待数据被填充,但数据始终保持相对较新的状态。但实际上,此特性并不适用于当前版本的缓存 API,因为在从缓存中删除缓存的项之前,不触发或不完成回调。因此,用户将频繁地发出尝试访问缓存值的请求,然后发现缓存值为空,不得不等待缓存值的重新填充。我希望在未来的 ASP.NET 版本中看到一个附加的回调,可以称为 ,如果定义了该回调,则必须在删除缓存项之前完成执行。

缓存数据引用模式

每当我们尝试访问缓存中的数据时,都应该考虑到一种情况,那就是数据可能已经不在缓存中了。因此,下面的模式应该普遍适用于您对缓存的数据的访问。在这种情况下,我们假定已缓存的数据是一个数据表。

public DataTable GetCustomers(bool BypassCache)

{

string cacheKey = "CustomersDataTable";

object cacheItem = Cache[cacheKey] as DataTable;

if((BypassCache) (cacheItem == null))

{

cacheItem = GetCustomersFromDataSource();

Cache.Insert(cacheKey, cacheItem, null,

DateTime.Now.AddSeconds(GetCacheSecondsFromConfig(cacheKey),

TimeSpan.Zero);

}

return (DataTable)cacheItem;

}

关于此模式,有以下几点需要注意:

? 某些值(例如,cacheKey、cacheItem 和缓存持续时间)是一次定义的,并且只定义一次。

? 可以根据需要跳过缓存 — 例如,当注册一个新客户并重定向到客户列表后,最好的做法可能就是跳过缓存,用最新数据重新填充缓存,该数据包括新插入的客户。

? 缓存只能访问一次。这种做法可以提高性能,并确保不会发生 NullReferenceExceptions,因为该项在第一次被检查时是存在的,但第二次检查之前就已经到期了。

? 该模式使用强类型检查。C# 中的 "as" 运算符尝试将对象转换为类型,如果失败或该对象为空,则只返回 null(空)。

? 持续时间存储在配置文件中。在理想的情况下,所有的缓存依赖项(无论是基于文件的,或是基于时间的,还是其他类型的依赖项)都应该存储在配置文件中,这样就可以进行更改并轻松地测量性能。我还建议您指定默认缓存持续时间,而且,如果没有为所使用的 cacheKey 指定持续时间,就让 GetCacheSecondsFromConfig() 方法使用该默认持续时间。

相关的代码示例是一个 helper 类,它将处理上述所有情况,但允许通过一行或两行代码访问缓存的数据。请下载 CacheDemos.msi。

小结

缓存可以使应用程序的性能得到很大的提高,因此在设计应用程序以及对应用程序进行性能测试时应该予以考虑。应用程序总会或多或少地受益于缓存,当然有些应用程序比其他应用程序更适合使用缓存。对 ASP.NET 提供的缓存选项的深刻理解是任何 ASP.NET 开发人员应该掌握的重要技巧。

尽早缓存;经常缓存

您应该在应用程序的每一层都实现缓存。向数据层、业务逻辑层、UI 或输出层添加缓存支持。内存现在非常便宜 — 因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。

缓存可以掩盖许多过失

缓存是一种无需大量时间和分析就可以获得"足够良好的"性能的方法。这里再次强调,内存现在非常便宜,因此,如果您能通过将输出缓存 30 秒,而不是花上一整天甚至一周的时间尝试优化代码或数据库就可以获得所需的性能,您肯定会选择缓存解决方案(假设可以接受 30 秒的旧数据)。缓存正是那些利用 20% 付出获得 80% 回报的特性之一,因此,要提高性能,应该首先想到缓存。不过,如果设计很糟糕,最终却有可能带来不良的后果,因此,您当然也应该尽量正确地设计应用程序。但如果您只是需要立即获得足够高的性能,缓存就是您的最佳选择,您可以在以后有时间的时候再尽快重新设计应用程序。

页面级输出缓存

作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的 HTML 的副本。其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高(取决于需要多少开销来创建原始页面输出 - 发送缓存的输出总是很快,并且比较稳定)。

你详细看看

4. 网站缓存功能是什么意思

提前下载后储存在本地硬盘中

缓存的最根本的目的是为了提高网站性能,减轻频繁访问数据而给数据库带来的压力.再进一步,合理的缓存了某种数据形式,还会减轻程序运算时,对CPU带来的压力.首先,我们要知道一个最基本的效率规则,操作内存中的数据比操作存放在硬盘上的数据是要快N个数量级的.操作简单的文本结构的数据比操作数据库中的数据快N个数量级.

目前缓存的做法分为两种模式:


第一种模式是内存缓存,缓存数据存放在服务器的内存空间中,这种模式的效率是最高的.这里要注意的是:每一个服务器的资源都是有限的,盲目的把所有数据都加在到内存中,将可能会导致服务器资源占用过多,而造成Web服务失败.


第二种模式就是文件缓存,缓存数据存放在服务器的硬盘空间中.存放格式有很多种类,如:文本格式,XML格式,二进制格式等等.这里要注意的是,服务器I/O的处理能力有限,当一次性读取过大数据时(>1M),它并没有想象中那么的高效.这个时候就需要你有一个合理的文件结构来解决了.但这已经不在我们本次要讲叙的内容范围内了.

5. apache服务器下的静态页面如何缓存

Apache有缓存模块的。 例如:

LoadMole mem_cache_mole moles/mod_mem_cache.so
<IfMole mod_cache.c>
<IfMole mod_mem_cache.c>
CacheEnable mem /
# cache 40MB
MCacheSize 80960
MCacheMaxObjectCount 21000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 1
MCacheMaxObjectSize 74000
###GDSF 基于缓存命中率和文档大小计算优先级。在必要时,优先级最低的文档被移出缓存
##MCacheRemovalAlgorithm GDSF
#LRU 指定最长时间没有用到的对象将在必要的时候移出缓存
MCacheRemovalAlgorithm LRU
</IfMole>

6. php DUXCMS如何开启页面缓存

1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面。rubyPHP的页面缓存是自动进行的,在config/tpl.php中可配置是否启用缓存以及缓存文件的有效期。当然这仅仅是全局设置,在调用视图时可重新指定是否启用缓存以及缓存有效期。

2.SQL缓存。sql缓存指之前执行过的查询sql语句以及他的结果缓存在内存中,在一段时间内用相同的sql语句执行查询操作时不经过数据库直接返回内存中数据。rubyPHP使用Redis以键值方式缓存sql语句以及他的对应结果。rubyPHP能够在php7上完美运行。(附:关于windows php7 redis 扩展的下载参照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重写了mysql_query以及mongo_query方法,在执行查询sql查询语句时会优先加载未过期的缓存数据。与页面缓存类似,sql缓存的全局配置路径为config/redis.php,在具体执行sql语句前可重新执行是否使用缓存以及缓存有效期。

3.读写分离。读写分离是建立在主从同步基础上为了减轻服务器压力,将查询语句转移到从服务器上执行的解决方案。rubyPHP重写了mysql_query,mongo_query函数,除了对查询语句进行内存级缓存的优化,同时也将查询语句放到了从服务器上执行。mysql的主从配置文件路径为config/mysql.php。

4.html压缩。html压缩配合页面缓存,前者降低了服务器端压力,后者减少了输出内容所占空间,将html文件中的空格换行等进行压缩,减少了输出文件的大小,在一定程度上保护了html的安全。

rubyPHP在代码结构上模仿CI,在功能上模仿thinkPHP。

rubyPHP的功能包含以下几方面:

1.使用了thinkPHP的M方法操作数据库。对于一些简单的sql语句无需手工写,用熟悉的M()->where()->limit()->find()这样的语法即可完成。曾经面试有人问我为什么thinkPHP的M方法能够进行连续操作,现在终于明白是使用了单利模式。

2.屏蔽了数据库的差异。M方法的另一个优点是用来组件sql语句,对高层屏蔽数据库差异。当然,对于复杂的查询,M方法是做不到的,此时可以使用已被重写过的mysql_query以及mongo_query执行你的sql语句。

3.自定义路由。这一点模仿了CI的route.php,将url同控制器的映射关系写到一个配置文件里。

不足之处:

view文件不支持变量循环输出。目前的解决方案是使用angularjs调用接口在页面输出内容。框架示例程序便是一个使用angularjs的和bootstrap的界面。

7. WEB服务器缓存问题,高手请进

如需要网站缓存服务器,可以试用下Fikker,Fikker 是国内第一款面向广大站长的专业级网站加速服务器软件,全界面化管理,利用页面缓存技术(webcache),网站管理员或开发人员通过 Fikker 管理平台将指定的页面缓存起来,其他用户在访问相同页面时候,就不需要网站读取数据库后再生成页面了,Fikker 直接返回用户需要的页面,平均响应速度提升 10 倍以上;另外 Fikker 通过 gzip 将页面(html,asp,php,css,js)压缩起来,减少了传输尺寸,提高传输效率和减少带宽占用。

8. asp动态页面如何设置缓存

ASP页面缓存的语句
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>

注解:
当Buffer为True的时候,asp会将这个程序解释完毕后一起发送到客户端,当Buffer为False的

时候,asp会边解析边发送数据.
ExpiresAbsolute 属性指定缓存于浏览器中的页的到期日期和时间。在未到期之前,若用户

返回到该页,该缓存的页就显示。如果未指定时间,该主页在当天午夜到期。如果未指定日

期,则该主页在脚本运行当天的指定时间到期。
表示当前页面在客户端 CACHE 存储的时间,在指定时间内用户浏览此网页看到时

CACHE 里面的而不是最新的内容,超过了指定时间浏览器则重新从服务器上取最新的内容

,然后计时又重新开始。
CacheControl属性设置代理服务器是否可缓存ASP的输出。默认设置为不可存。
AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并

不替代现有的同名标题。一旦标题被添加,将不能删除。

9. 服务器段怎么设置缓存 nginx

在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。

apache:
首先确定配置文件httpd.conf中确已经加载mod_headers模块。

LoadMole headers_mole moles/mod_headers.so

我们可以根据文件类型来让浏览器每次都从服务器读取,这里测试用css、js、swf、php、html、htm这几种文件。

Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"

nginx:

location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}

对于站点中不经常修改的静态内容(如图片,JS,CSS),可以在服务器中设置expires过期时间,控制浏览器缓存,达到有效减小带宽流量,降低服务器压力的目的。

以Nginx服务器为例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#过期时间为30天,
#图片文件不怎么更新,过期可以设大一点,
#如果频繁更新,则可以设置得小一点。
expires 30d;
}

location ~ .*\.(js|css)$ {
expires 10d;
}

10. traffic server 怎么缓存http页面

客户端指示

默认情况下,Traffic Server不缓存含有如下请求头部的对象:

Cache-Control: no-store头部

Cache-Control: no-cache头部

配置Traffic Server忽略Cache-Control: no-cache头部,见Configuring Traffic Server to Ignore Client no-cache Headers。

Cookie: 头部(文本对象)

默认情况下,Traffic Server缓存为包含cookies请求服务的响应对象(除了文本对象)。可以配置Traffic
Server不缓存任何类型的cookies内容、缓存所有的cookies内容或者只缓存图片类型的cookies内容。更多信息见Caching
Cookied Objects。

Authorization: 头部

配置Traffic Server忽略客户端的no-cache头部

默认情况下,Traffic Server严格遵守客户端Cache-Control:
no-cache的指示。如果一个被请求的对象包含no-cache头部,即使它在缓存中仍然有效,Traffic
Server也会将该请求传递给源服务器。可以配置Traffic
Server忽略客户端no-cache指示,这样它将忽略客户端请求的no-cache头部并用缓存中的对象服务该请求。

配置Traffic Server忽略客户端的no-cache头部

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache.ignore_client_no_cache

设置这个变量为1来忽略客户端请求旁路缓存。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

源服务器指示

默认情况下,Traffic Server不缓存包含如下响应头部的对象:

Cache-Control: no-store头部

Cache-Control: private头部

WWW-Authenticate: 头部

要配置Traffic Server忽略WWW-Authenticate头部,见Configuring Traffic Server to Ignore WWW-Authenticate Headers。

Set-Cookie: 头部

Cache-Control: no-cache头部

要配置Traffic Server忽略no-cache头部,见Configuring Traffic Server to Ignore Server no-cache Headers。

Expires: 头部包含0值或过去时间

配置Traffic Server忽略服务器no-cache头部

默认情况下,Traffic Server严格遵守Cache-Control:
no-cache指示。一个来自源服务器的带有no-cache头部的响应将不会被存储在缓存,该对象之前在缓存中的拷贝也会被删除。如果配置
Traffic Server忽略no-cache头部,Traffic
Server同时也忽略no-store头部。在大多数情况下是应该遵守no-cache指示的。

配置Traffic Server忽略服务器no-cache头部

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache.ignore_server_no_cache

设置这个变量为1来忽略服务器旁路缓存。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

配置Traffic Server忽略WWW-Authenticate头部

默认情况下,Traffic Server不缓存包含WWW-Authenticate响应头部的对象。WWW-Authenticate头部包含着客户端准备用来响应源服务器挑战应答的鉴定参数。

当配置Traffic
Server忽略源服务器的WWW-Authenticate头部,所有带WWW-Authenticate头部的对象将被存储在缓存中被用来服务后来的
请求,在大多数情况下,应该使用默认的不缓存带WWW-Authenticate头部对象的行为。只有在对HTTP
1.1深入理解的基础上,再尝试配置Traffic Server忽略服务器WWW-Authenticate头部。

配置Traffic Server忽略WWW-Authenticate头部

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache.ignore_authentication

设置这个变量为1来缓存带WWW-Authenticate头部的对象。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

配置指示

除了客户端和服务器的指示,Traffic Server同样响应配置选项和文件的指示。

可以按如下步骤来配置Traffic Server:

l 不缓存任何对象(见Disabling HTTP Object Caching)。

缓存动态内容 — 对象的URL以.asp结尾或者包含问号(?)、分号(:)或者cgi。更多信息见Caching Dynamic Content。

缓存响应Cookie: 头部的对象(见Caching Cookied Objects)。

遵守cache.config文件中的从不缓存规则(见cache.config)。

关闭HTTP 对象缓存功能

默认情况下,Traffic Server缓存除了在cache.config文件中设置了从不缓存规则的所有对象。可以关闭HTTP 对象缓存功能,所有的对象都直接由源服务器服务而且从不缓存。

手动配置关闭HTTP对象缓存功能:

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache.http

设置这个变量为0来关闭HTTP对象缓存功能。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

缓存动态内容

一个以.asp结尾或包含问号(?)、分号(;)或者cgi的URL被认为是动态的。Traffic Server不缓存冬天内容。可以配置Traffic Server缓存动态内容,当然这只推荐在专门的代理情形下使用。

配置Traffic Server缓存动态内容:

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache_urls_that_look_dynamic

设置这个变量为1来缓存动态内容。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

缓存Cookied对象

默认情况下,Traffic Server缓存为包含cookies请求服务的响应对象(除了文本对象)。Traffic
Server之所以不缓存文本内容的cookied,是因为对象的头部和对象是一起存储的,而带有隐私的cookie头部是不能和对象一起保存的。对于非
文本对象,不能确定是否使用了带有隐私的cookie头部。

可以配置Traffic Server:

不缓存任何类型的cookies内容。

只缓存图片类型的cookies内容。

缓存所有的cookies内容。

配置Traffic Server缓存cookied内容的方式:

1. 在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2. 编辑下面的变量:

变量

描述

proxy.config.http.cache.cache_responses_to_cookies

设置这个变量来指定Traffic Server缓存cookied内容的方式:

0 = 不缓存任何cookies响应。

1 = 缓存所有的cookies响应。

2 = 只缓存图片类型的cookies响应。

3 = 缓存除了文本内容类型的所有cookies响应。

3. 保存并关闭records.config文件

4. 定位到Traffic Server的bin目录

5. 运行traffic_line –x命令来应用配置文件的变更。

阅读全文

与服务器页面如何缓存相关的资料

热点内容
加密货币巨鲸图片 浏览:186
学商业模式用什么app 浏览:721
有什么app可以看历年初中考试题 浏览:657
奶块官方服务器有什么折扣充值吗 浏览:72
电子图板线型比例命令 浏览:792
南京果加密码锁门店 浏览:412
板块涨停数公式源码 浏览:575
单片机扫地机器人轨迹控制 浏览:47
华为编程笔试题 浏览:415
安卓黑脸emoji怎么打 浏览:400
达达同城骑士app叫什么 浏览:242
基于单片机的数字电子称设计 浏览:278
windowsscp命令行 浏览:812
android共享数据库连接 浏览:196
程序员秃头概率是多少 浏览:284
暗黑版神奇宝贝服务器下载地址 浏览:260
ug加工中心编程培训 浏览:914
冰河云服务器怎么样啊 浏览:669
app引流渠道这哪里效果好 浏览:436
linux的report 浏览:433