使用 Pagespeed 做反向代理

之前有提到过我把博客的图片都移到 App Engine 了,这样做的好处是 Google 的 CDN 很快,并且价格便宜,但坏处也很明显,就是由于某些“不可抗力”的影响,图片时常打不开。没办法,只能再绕回来。

反向代理(Reverse Proxy)是这么一个东西,它可以把远程服务器的资源收回本机,然后再向客户端发出去。简单来说,现在博客图片放在 leonax.storage.googleapis.com 上面,访问不到。设置了一个反向代理之后,图片回到了 leonax.net/images,这样就可以正常访问了。之所以称它为“代理”,是因为源图片依然存放在 googleapis.com,只是用户访问时候,动态抓取过来而已。

一开始我想用 Apache 做反向代理,但貌似它对 CDN 的支持不太好,只好放弃。后来发现 pagespeed 也有类似的功能,尝试下来效果还不错。只需要两行代码:

其中 ModPagespeedMapRewriteDomain 是把页面中所有指向 googleapis.com 的引用都改写成 leonax.net/images,这样我就不用一个一个页面去改了。然后用 ModPagespeedMapProxyDomain 把 leonax.net/images 反向代理到 https://leonax.storage.googleapis.com。这样一来,用户访问 leonax.net/images 的时候,就自动获得后者的内容了。

另外,开启 SSL 支持还需要:

这样做的好处是避免了 googleapis.com 时常访问不了的情况,但坏处是增加了主站的流量,AWS 的小机器可能会承受不了。


发表评论

电子邮件地址不会被公开。 必填项已用*标注