优化页面加载速度的实践包括从子域加载静态资产(如图像、css、js),从而通过使用无 cookie 域来提高性能,但最重要的是通过从浏览器进行并行下载。
我在为各种网站提供服务的网络服务器前使用了 varnish 反向缓存。
我如何指示 varnish 重写静态文件 (css、js、png、jpg、jpeg、gif) 的 URL,以便它们由子域提供服务?因此,如果有人要求 domain.com/image.png,则最终会从 static.domain.com/image.png 提供服务。域和子域由同一台服务器提供服务。Varnish 已连接到 127.0.0.1 的后端
url 重写在 varnish 还是在后端(apache)效率更高?我觉得在 varnish 中做会更快,因为它在最前端,对吗?
在 apache 中做同样的事情的方法是什么?
答案1
varnish 确实不是用来做重定向的。有一些 hack 可以做到这一点,例如
http://blog.mudy.info/2009/02/how-to-do-http-redirect-on-varnish/
我个人不会那样做。正确的方法是在 Web 应用程序中。您可以更改代码以引用不同的主机来获取资产。
所以你有了
cdn1.domain.com
cdn2.domain.com
...
cdn10.domain.com
这样你就可以更好地绕过欺骗浏览器。它们都访问同一个 IP,而你的 httpd 配置只是将这些主机作为主域的别名。
实际上,重定向会减慢速度,因为客户端在获得重定向后会发出另一个请求。您想要做的只是对解决方案进行临时修复,但速度提升不大。