当从不同的内容源构build我们的网页时,可能需要从外部服务器获取一些图像(例如,当合并RSS源时),这可能不像我们自己的数据中心那样快速或连接不上。 我想有一种方法分别复制代理文件到我们的网站上运行的服务器地址,以防止外部服务器的负载可能改变文件名,以隐藏图像是dynamic生成的事实。
例如打开下面的url
http://domain.de/content/query?file=foo/nr_1.gif
成这样的东西:
mydomain.net/static/domain.de/query_3fresource_3dfoo_2fnr_5f1.gif
这应该兑现etags,如果修改,因为更改过期标头,使文件静态和可caching,无论原始服务器说什么。
我想我可以使用清漆和另一个Web服务器来构build这样的东西,但也许有一个解决scheme已经可用。
这可能是CDN的一部分,但是我并不期望有一个真正的CDN的必要性,因为我们没有很多来自其他国家的访问者
我强烈build议使用代理(如清漆或鱿鱼),而不是下载文件并自己保留,以便代理负责所有的caching过期和其他娱乐,使caching非常有趣。
如果您尝试cachingdynamic生成的内容,并且在请求标头中没有正确的过期信息,那么您需要让生成这些页面的任何人包含适当的标头(根据数据更改的速率在页面上),或者如果这是不可能的,那么覆盖Varnish VCL文件中的到期时间。
通过将所有内容检索到文件,然后在本地提供,“caching”意味着您可能会要求整个内容实际上不会被提供给用户(这意味着负载networkingstream量,CPU,磁盘,无论 – 在原始服务器上可能比现在更高 ),你将最终重新实现caching代理有用的很大一部分(到期,存储pipe理等)。 这是不值得的。 这里没有任何东西(我知道的),因为任何聪明的人都可以做出这种不完整的屁股,这足以让人意识到这是一个坏主意 ,以及它们是如何无论如何重新实现了鱿鱼的硬一半。