1

我有以下需求:

  1. 网络应用程序在http://mything.com/.
  2. 反向代理服务器位于http://mything.com/proxy/
    1. 反向代理应该代理:http://mything.com/proxy/http://bbc.co.uk/例如。
  3. 反向代理应重写源页面 ( ) 中的所有链接、src、href 等,以htp://bbc.co.uk将它们从http://mything.com/proxy/$1.

我们有 90% 的 Ruby 工作实现,开发为Rack应用程序,一系列 8 个中间件可以完成各种工作:

  • 重写cookie域
  • 从我们的网站注入一个 javascript 块
  • 重写链接以适应代理。

诚然,我们的 Ruby 版本还不错,但是处理一个页面大约需要一秒钟,这速度非常慢,而且根本无法融合。当我们将 SSL 引入混合时,它会变得更糟,并且管理层正在讨论剥离所有 SSL,并且只使用 http。(这自然是目光短浅,而且非常愚蠢。)

这类问题必须通过 Squid 等工具和 ICAP 等协议草案得到更广泛的解决。

我想放弃我们自己开发的解决方案,因为它是持续痛苦的根源,而且速度很慢

我刚来了解SquidContent Adaptation功能,但还没有找到合适的方法让它发挥作用。

我可以看到以下我无法解决的问题:

  1. 如何从原始请求 URI 中提取 URL 组件?即我怎样才能把.../proxy/(.*)它用作后端地址?
  2. 如何在 ICAP 程序中重写 cookie?即 ICAP 内容改编程序是否收到完整的请求?
  3. 如何使用 ICAP 重写 url、链接等?(Squirm看起来很有希望,但看起来事情必须进行硬编码(参见第 1 点。)即是否有任何更智能的工具可以简单地使用正则表达式/等?

我知道这个问题有被标记为“没有研究证据”的风险,但我已经处于我能够确定的范围内,而无需花费数天(或看起来如此)来学习鱿鱼的错综复杂,当我唯一需要的是重写一些内容时!

4

0 回答 0