没有清漆和没有清漆的负载时间差异



我正在尝试使用清漆缓存在服务器上缓存静态文件。我配置清漆缓存文件与图像扩展名(.jpg, .png等)。之后,我打开我的网站,用浏览器开发工具调试它,检查我网站上所有图像的加载时间,当我使用清漆或不使用清漆时,加载时间没有区别。在响应头的X-Cache条目中有一个"HIT",所以图像可以在我的缓存中使用,对吗?知道我哪里做错了吗?

p。我使用nginx作为后端服务器

Varnish不应该对静态文件产生真正的影响,特别是当它们位于SSD上时。非常频繁访问的站点可能是一个例外,特别是当数据存储在(慢)HDD上时。这里有大量的I/O,可以通过使用Varnish在ram中缓存图像来大大减少I/O。但是在某些特殊情况下,缓存静态文件是有意义的。对于nginx来说,这是一个非常快的web服务器,非常擅长传递静态文件。

Varnish的主要用途是由一些服务器端后端生成的HTML,如PHP, ASP。NET和其他为这项任务设计的语言。与提供静态文件相比,生成动态内容对时间非常敏感:例如,后端必须处理当今web应用程序中非常常见的数据库查询或解析模板。Wordpress是一个广泛使用的CMS,也是一个很好的例子:在一个请求上执行几个10k的php代码,根据插件的数量,100个数据库查询甚至更多也不例外。

因此,对于每个请求,服务器要做很多事情。对于作为网站所有者的您,这有以下影响:

  1. 加载时间过长会导致问题:

    • 访问者不是很有耐心,当他们认为你的页面不够快时,他们就会离开你的页面。一个每天赚10万美元的网上商店,如果延迟1秒,每年可能损失高达250万美元(详见https://blog.kissmetrics.com/loading-time/)

    • 因此,谷歌使用加载时间作为您排名的指标(见http://www.shoutmeloud.com/google-started-ranking-websites-based-on-load-time-and-speed.html)并不意外

  2. 根据访问者的数量,它可以花费你更多或更强大的服务器的钱

Varnish可以将后端生成的HTML存储在RAM或硬盘驱动器上。特别是对于SSD,后者更有意义。根据网站的结构和使用情况,Varnish至少可以提高页面的速度,也许还可以节省资金,因为更少的(强大的)服务器可以完成这项工作。

当使用Varnish作为动态生成内容的前端时,您会注意到明显的差异。根据应用程序的不同,甚至有很大的不同。我为一个基于vBulletin的论坛配置了清漆,可以提高页面加载时间约5倍。

总结你应该把重点放在缓存动态页面上,而不是静态的东西,比如图片或clientscript,因为在大多数情况下,web服务器已经足够好了,可以提供这些东西。当静态内容确实很慢时,这可能可以通过使用CDN来改进。或者你的web服务器没有很好地配置最佳速度。例如,可能没有为图像定义生命周期。这可能会对性能产生负面影响,特别是对较大的服务器。但是,如果不进一步了解您的应用程序和配置,就不可能调查性能问题并给出具体的改进建议。

最新更新