![varnish 从子域名提供静态文件以提高页面加载速度](https://linux22.com/image/550966/varnish%20%E4%BB%8E%E5%AD%90%E5%9F%9F%E5%90%8D%E6%8F%90%E4%BE%9B%E9%9D%99%E6%80%81%E6%96%87%E4%BB%B6%E4%BB%A5%E6%8F%90%E9%AB%98%E9%A1%B5%E9%9D%A2%E5%8A%A0%E8%BD%BD%E9%80%9F%E5%BA%A6.png)
优化页面加载速度的实践包括从子域加载静态资产(如图像、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 配置只是将这些主机作为主域的别名。
实际上,重定向会减慢速度,因为客户端在获得重定向后会发出另一个请求。您想要做的只是对解决方案进行临时修复,但速度提升不大。