首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何验证用作反向代理的Squid是否有效?

如何验证用作反向代理的Squid是否有效?
EN

Stack Overflow用户
提问于 2009-03-25 23:17:22
回答 2查看 6.6K关注 0票数 4

我们希望减少其中一个web服务器的负载,我们正在运行一些测试,将squid配置为反向代理。

配置如下:

http_port 80 accel defaultsite=original.server.com

cache_peer original.server.com父服务器80 0不查询原始服务器name=myAccel

acl our_sites dstdomain .contentpilot.net

http_access允许our_sites

cache_peer_access myAccel允许our_sites

cache_peer_access myAccel否认所有

我们目前的情况是,服务器几乎一直都在返回TCP_MISS。

代码语言:javascript
运行
复制
1238022316.988     86 69.15.30.186 TCP_MISS/200 797 GET http://original.server.com/templates/site/images/topnav_givingback.gif - FIRST_UP_PARENT/myAccel -
1238022317.016     76 69.15.30.186 TCP_MISS/200 706 GET http://original.server.com/templates/site/images/topnav_diversity.gif - FIRST_UP_PARENT/myAccel -
1238022317.158     75 69.15.30.186 TCP_MISS/200 570 GET http://original.server.com/templates/site/images/topnav_careers.gif - FIRST_UP_PARENT/myAccel -
1238022317.344     75 69.15.30.186 TCP_MISS/200 2981 GET http://original.server.com/templates/site/js/home-search-personalization.js - FIRST_UP_PARENT/myAccel -
1238022317.414     85 69.15.30.186 TCP_MISS/200 400 GET http://original.server.com/templates/site/images/submenu_arrow.gif - FIRST_UP_PARENT/myAccel -
1238022317.807     75 69.15.30.186 TCP_MISS/200 2680 GET http://original.server.com/templates/site/js/homeMakeURL.js - FIRST_UP_PARENT/myAccel -
1238022318.666   1401 69.15.30.186 TCP_MISS/200 103167 GET http://original.server.com/portalresource/lookup/wosid/intelliun-2201-301/image2.jpg - FIRST_UP_PARENT/myAccel image/pjpeg
1238022319.057   1938 69.15.30.186 TCP_MISS/200 108021 GET http://original.server.com/portalresource/lookup/wosid/intelliun-2201-301/image1.jpg - FIRST_UP_PARENT/myAccel image/pjpeg
1238022319.367     83 69.15.30.186 TCP_MISS/200 870 GET http://original.server.com/templates/site/images/home_dots.gif - FIRST_UP_PARENT/myAccel -
1238022319.367     80 69.15.30.186 TCP_MISS/200 5052 GET http://original.server.com/templates/site/images/home_search.jpg - FIRST_UP_PARENT/myAccel -
1238022319.368     88 69.15.30.186 TCP_MISS/200 5144 GET http://original.server.com/templates/site/images/home_continue.jpg - FIRST_UP_PARENT/myAccel -
1238022319.368     76 69.15.30.186 TCP_MISS/200 412 GET http://original.server.com/templates/site/js/showFooterBar.js - FIRST_UP_PARENT/myAccel -
1238022319.377    100 69.15.30.186 TCP_MISS/200 399 GET http://original.server.com/templates/site/images/home_arrow.gif - FIRST_UP_PARENT/myAccel -

我们已经试过删除所有的缓存内存了。任何想法。难道我的网站每次都在标记一些不同的内容,即使它自上次被代理请求后没有改变?

EN

回答 2

Stack Overflow用户

发布于 2009-04-17 11:03:53

源服务器(web服务器)与您的内容一起发送返回的头是什么?为了让squid可以缓存,我认为您通常必须在响应头中指定一个最后修改的或ETag。Web服务器通常会对静态内容自动执行此操作,但是如果您的内容正在动态地被服务(即使是来自静态源),那么您必须确保它们在那里,并处理请求标头,例如if -修改的-自和如果-无匹配。

另外,既然我被你接下来的关于会话的问题指出了这个问题--在回答中是否出现了一个“不同”的标题?例如,“wants : Cookie”告诉缓存,内容可以根据请求中的Cookie头而变化:所以静态内容想要删除该内容。但是,如果存在会话,web服务器可能会将其添加到所有请求中,而不考虑所服务数据的静态/动态性质。

在我的经验中,为了了解HTTP头对缓存的影响而进行的一些试验是有很大好处的:我记得发现解决方案并不总是显而易见的。

票数 3
EN

Stack Overflow用户

发布于 2009-04-21 10:48:27

检查firefox中wireshark或firebug返回的标头(后者更容易推动,但如果最终需要的话,前者会给出更多的低级信息)。

在响应头中查找这些项(单击“`Net”视图中的某个项以展开该项并查看请求和响应标头):

如果在过去没有将其设置为合理的时间,那么如果每次请求相同的项时都会发生这些更改,那么它将不会被缓存,如果每次请求相同的项,那么它将是来自客户端的re-fetched

  • Cache-Control ->请求,最大年龄=0将(我相信)请求一个新的页面副本,如果这是在过去设置的(即总是过期的),则squid将不会缓存它

(我相信)。

正如araqnid所建议的,HTTP头可以对代理认为它可以缓存的内容产生巨大的影响。如果您的后端正在使用apache,那么测试在没有经过任何PHP或其他应用层的情况下服务的静态文件是可缓存的。

另外,检查maximum_object_size和minimum_object_size的squid设置是否设置为合理的值(默认值为4Mb和0kb,这应该很好),最大缓存项的年龄也是合理设置的。(有关此设置和其他设置,请参见http://www.visolve.com/squid/squid30/cachesize.php#maximum_object_size )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/683906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档