Articles of caching

在向squid发送多个请求时,向后端发送一个请求,并在未命中时排队其他请求

我想保护一个后端服务器,让squid发送一个单一的请求到服务器,当一个资源caching未命中时。 在获取期间,其他请求应该被搁置,直到单个请求返回。 头文件stale-while-revalidate几乎是我想要的,但是当max-age和stale-while-revalidate都通过时,没有失效的响应,并且多个请求将被发送到后端。 指令collapsed_forwarding似乎正是我所期待的。 但是我无法按预期工作,仍然在最大时期内看到对后端的多重请求。 我正在testing这与SoapUI 5.2.1简单的负载testing与40个线程。 我目前的Squidconfiguration(3.5.19)是默认configuration,有以下更改: #Queue incomming requests when a request is send to the backend. IE collapse request into a single backend request. collapsed_forwarding on # Squid normally listens to port 3128 http_port 3128 accel no-vhost defaultsite=localhost ignore-cc #Backend requires basic auth cache_peer 127.0.0.1 parent 53142 0 no-query originserver name=myAccel login=username:password […]

清漆不能与最后修改

我是新的清漆,并扭转一般的代理。 我在一个像博客那样工作的应用程序中testingVarnish,在这个应用程序中,我有一个“updated_at”的页面,一旦页面更新,这个页面就会改变。 因此,我决定我的caching策略应该基于最后修改的标题。 原因是用户希望在后台修改页面后立即看到更改。 除此之外,我明白我可以添加一个s-maxage与必须重新validationcaching控制,所以如果最后修改没有改变光油甚至不会尝试提出新的要求。 我也为浏览器添加了一个expire,所以会有一个客户端caching。 因此,浏览器甚至不会要求清漆再次向Apache发出请求。 但是,我注意到,caching控制s-maxage优先于最后修改,即使使用must-revalidate。 而且,即使我不添加caching控制,“最后修改”也不起作用。 清漆使用默认的ttl,没有任何反应。 我究竟做错了什么? 我正在使用Symfony,这是头文件: $response = new Response(); $response->setPublic(); // expiration model for the browser cache (EXPIRE) // the browser will only make a new request to Varnish again after ten minutes (600 seconds) $date = new \DateTime(); $date->modify('+600 seconds'); $response->setExpires($date); // expiration model for Varnish (CACHE-CONTROL) […]

如何保持outlook在交换caching模式下创build多个ost文件

我正在我的域上实现Office 365。 我有组策略设置允许交换caching模式和.ost文件存储在远程服务器上。 我遇到的问题是,每个terminal服务器都创build自己的.ost文件,因此连接到TerminalServerA,B,C和D的用户将拥有[email protected][email protected]。 ost(2),[email protected](3),[email protected](4)。 有没有办法使所有的terminal服务器使用一个.ost文件,或者是这样的devise,如果是的话,为什么?

为什么DNS查询只对特定域缓慢?

我们正在运行Windows DNS服务器,但它们不是权威的。 所以我们指向将服务器caching为转发器。 也就是说,对于以下两个域, 如果域尚未caching到我们的内部DNS,我们会在DNS查找中遇到相当长的延迟。 internet2.edu postgresql.org 到目前为止,我们还没有发现任何其他显示此类症状的域名。 我已经完成了端口53上的数据包捕获,并且使用和不使用+trace选项来testingdig 。 一旦它被caching在我们的DNS服务器上,随后的查询就可以用+trace来快速回来。 如果没有+trace选项,它会相当快地cachingNS信息和一些Alogging(dns,dns2,dns3)。 它继续返回status: SERVFAIL直到它最终cachinginternet.edu的Alogging。 一旦caching,查找就像预期的那样超快。 如果Alogging从caching中删除,并且长时间延迟再次发生。 任何想法,为什么这可能会发生? $ time dig internet2.edu @dc01 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> +time=300 internet2.edu @dc01 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 33488 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: […]

nginx不在条件GET上从原始服务器返回更新的头文件

除了一个小问题,我还有nginx和它的caching工作。 当第一次发出请求时,它会触发原始服务器,返回一个200和nginxcaching的响应。 如果我提出另一个请求,我可以从X-Cache-Status头看到caching已经被命中。 当我等待一段时间知道caching将过期时,我可以看到nginx命中我的原始服务器做一个条件的GET,因为我有proxy_cache_revalidate on; 定义。 当我检查源服务器上的应用程序中的资源是否发生变化时,我发现它没有,并返回一个带有新的Expires标题的304。 有些人可能会说,如果原始服务器没有任何变化,并且你返回304,你为什么要返回一个新的Expires头文件。答案是HTTP RFC说可以这样做https://tools.ietf.org/html/ rfc7234#部分-4.3.4 有一件事我注意到了,无论我添加或修改什么标题,当源服务器返回304时,nginx都会给出一个响应,并为它提供第一组响应头。 另外,如果我从第一个请求更改Cache-Control:max-age标头值,当我返回304响应时,它似乎nginx服从新值,因为我的资源被caching的那个时候,但响应头值是给定的在第一个请求不是我修改的304响应的价值。 我正在运行nginx version: nginx/1.10.1

XMPPcaching转发器

试图谷歌,但它看起来像我不知道正确的关键字要求,以获得相关的结果。 我有一个应用程序发送一些基于事件的消息到Jabber帐户,但由于,例如,networking问题,它可能无法发送它。 所以我想,可能是我可以find一些代理软件,可以安装在服务器上,可以caching消息,并尽可能发送它们,如本地邮件服务。 有没有解决scheme? PS。 软件是一套PHP脚本。

NFS:文件删除遇到延迟,而不是“覆盖”

我有一个情况,我的文件服务器(linux)通过NFS导出文件系统到数据库服务器(Linux)。 因此,文件服务器(FS)充当NFS服务器,数据库服务器(DBS)是客户端。 FS上的导出选项是rw,同步和挂载选项在星上是rw,sync,acdirmin = 0,acdirmax = 0,lookupcache = none,vers = 4。 我有一个进程将文件复制到FS上的NFS文件系统。 数据库使用此文件的内容进行自己的处理,不久之后,进程删除FS上的文件,并使用相同的文件名将第二个文件复制到相同的位置。 然后数据库应该使用第二个文件来做它的东西,但由于客户端的一些奇怪的原因,数据库仍然看到第一个文件。 只有在复制第二个文件之前删除第一个文件,才会发生这种情况。 客户端显示新文件有时需要几分钟的时间。 但是,如果我通过不删除它来replace第一个文件,而只是复制第二个文件并覆盖第一个文件,它将立即显示在客户端。 有谁知道是什么原因导致这个,我该怎么做才能使用“先删除”的方法工作?

高速cachingconfiguration仍然有一些图像磁铁上有不同的caching时间

我正在nginx上运行一个magneto磁盘,并且我已经configuration了一些仍然在gtmetrix中的caching图像(5分钟) server { listen 0.0.0.0:443 default_server ssl; server_name somedomain.com; server_name www.somedomain.com; server_name ipv4.somedomain.com; pagespeed EnableFilters prioritize_critical_css; pagespeed EnableFilters extend_cache; ssl_certificate /usr/local/psa/var/certificates/cert-TANhO4; ssl_certificate_key /usr/local/psa/var/certificates/cert-TANhO4; ssl_client_certificate /usr/local/psa/var/certificates/cert-R31hv6; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; client_max_body_size 128m; root "/var/www/vhosts/somedomain/httpdocs"; access_log "/var/www/vhosts/system/somedomain/logs/proxy_access_ssl_log"; error_log "/var/www/vhosts/system/somedomain/logs/proxy_error_log"; location / { proxy_pass https://192.168.1.232:7081; proxy_set_header Host $host; proxy_set_header X-Real-IP […]

如何设置JavaScript文件caching在Apache的htaccess

对于.htaccess中的ExpiresByType,'application / javascript','application / x-javascript'以及我在线遇到的所有其他types之间有什么区别? 我发现,如何做到这一点,build议增加3-4行,如: ExpiresByType application/javascript "access 1 week" ExpiresByType text/js ExpiresByType application/x-javascript "access 1 week" 但是我真的需要全部3个吗? 我可以只使用一个可以在我的服务器和所有用户上使用的工具吗?

自动DNScaching逐出实时迁移的目的

在实时迁移虚拟机(VM)的环境中; 如果发生在大范围内,IP地址有可能会在源和目的地之间发生变化。 用户只需要将虚拟机的原始位置的DNSparsingcaching起来,就会发现虚拟机没有响应(迁移后原来的虚拟机已经被删除)。 当在迁移期间用户没有连接时,这个问题大部分是正确的,并且因此可能不被通知变化。 尽pipe将caching的TTL减less到非常小的数字是可行的 ,但是我想知道是否没有一种机制(例如ipv4 / ipv6 RFC中描述的机制)可以使客户机自动驱逐DNScachingA / AAAAlogging条目发生连接错误,并尝试重新连接。