如何实现跨平台反向代理

如何实现跨平台反向代理

寻找可以执行以下操作的缓存反向代理:1. 安装在卫星位置以减轻中央内容服务器的负载 2. 从原始服务器缓存 5-10 GB 的静态 img/swf 资产并检测媒体更新 3. 无需重新配置浏览器(无需调整代理设置)3. 支持池或负载平衡(最好有)。4. 允许从本地媒体初始播种资产(最好有)。

限制:1. 适用于 Windows 和 Mac 的跨平台。2. 相当容易安装/维护,并且必须在普通硬件上运行。3. 许可证应允许商业使用

我的第一个想法是:找到一个完全用 Java 或其他可移植语言编写的解决方案,或者用 Java 编写我自己的最小解决方案,或者创建在 Linux 上运行的 Squid/Traffic Server/Nginx 等的 VM 映像。

还没有找到好的软件包,我担心使用虚拟机可能会太慢。这不是我的专业领域,所以我希望有一些好的想法。

答案1

您是否考虑过使用 mod_proxy 和 mod_cache 的 apache httpd?

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

http://httpd.apache.org/docs/2.0/mod/mod_cache.html

答案2

Varnish - 缓存可通过 Varnish 服务器上的规则以及源服务器的标头进行控制。

负载平衡 - 像 haproxy 这样的工具应该可以解决问题,不确定 varnish 是否擅长此道。负载平衡和缓存是两个不同的功能 - 如果可以的话,请将它们分开。

至于检测更改并推送它们 - 这更像是应用程序设计问题。如果您设置了缓存超时(在所有级别,以便您的反向代理以及客户端浏览器能够一致地运行),那么应该可以适当地拾取新内容。

对于批量加载新内容,您只需让某些东西访问内容的代理并让它们预加载即可。

如果您想监控变化......对此并不完全确定 - 但如果 Varnish 不能自行完成,那么这是一个足够简单的脚本。

相关内容