问题标签 [content-adaptation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
proxy - Squid ICAP 重写内容
我有以下需求:
- 网络应用程序在
http://mything.com/
. - 反向代理服务器位于
http://mything.com/proxy/
- 反向代理应该代理:
http://mything.com/proxy/http://bbc.co.uk/
例如。
- 反向代理应该代理:
- 反向代理应重写源页面 ( ) 中的所有链接、src、href 等,以
htp://bbc.co.uk
将它们从http://mything.com/proxy/$1
.
我们有 90% 的 Ruby 工作实现,开发为Rack应用程序,一系列 8 个中间件可以完成各种工作:
- 重写cookie域
- 从我们的网站注入一个 javascript 块
- 重写链接以适应代理。
诚然,我们的 Ruby 版本还不错,但是处理一个页面大约需要一秒钟,这速度非常慢,而且根本无法融合。当我们将 SSL 引入混合时,它会变得更糟,并且管理层正在讨论剥离所有 SSL,并且只使用 http。(这自然是目光短浅,而且非常愚蠢。)
这类问题必须通过 Squid 等工具和 ICAP 等协议草案得到更广泛的解决。
我想放弃我们自己开发的解决方案,因为它是持续痛苦的根源,而且速度很慢。
我刚来了解Squid的Content Adaptation功能,但还没有找到合适的方法让它发挥作用。
我可以看到以下我无法解决的问题:
- 如何从原始请求 URI 中提取 URL 组件?即我怎样才能把
.../proxy/(.*)
它用作后端地址? - 如何在 ICAP 程序中重写 cookie?即 ICAP 内容改编程序是否收到完整的请求?
- 如何使用 ICAP 重写 url、链接等?(Squirm看起来很有希望,但看起来事情必须进行硬编码(参见第 1 点。)即是否有任何更智能的工具可以简单地使用正则表达式/等?
我知道这个问题有被标记为“没有研究证据”的风险,但我已经处于我能够确定的范围内,而无需花费数天(或看起来如此)来学习鱿鱼的错综复杂,当我唯一需要的是重写一些内容时!
ssl - 如何为内容适应设置 SSL 碰撞
我需要设置一个反向代理来拦截 HTTPS 请求,解密它们,执行主体适应并最终转发重新加密的请求。
我现在使用 Squid,它为 eCAP 插件和 ssl 碰撞提供支持:http ://wiki.squid-cache.org/Features/SslBump
如果我理解得很好,通过配置 SSL 碰撞,我可以完全按照我上面所说的去做。但是,ssl 碰撞暂时不起作用。
这是我的鱿鱼配置:
客户端,当尝试向 https://127.0.0.1:8080 发送请求时,我收到以下错误:
如果目标服务器正在运行 HTTPS,则会发生这种情况。看起来 Squid 正在尝试建立一个简单的 HTTP 连接而不是 HTTPS 请求。确实,服务器端我遇到了SSL23_GET_CLIENT_HELLO
错误。
我的配置有什么问题吗?SSL 凹凸的工作原理有什么我错过的吗?