问题与Apache,mod_proxy有关。
我的网站外部IP = X,内部IP = 10.0.0.1,由Apache提供,作为图像的反向代理:
ProxyPassMatch *.\.(jpg|gif|png) http://10.0.0.2/handle_image.php
当IP = Y的客户端连接到IP = X请求logo.jpg时,10.0.0.1上的Apache连接到10.0.0.2并从中检索图像;然后它将图像发送到Y上的客户端。这意味着图像数据通过10.0.0.1。
我希望Y上的客户端直接从10.0.0.2获取数据,同时保持与X的连接;即客户认为它从X获取数据但实际上是从10.0.0.1中抽取图像,因此X上的服务器网络不会通过图像传输加载。
据我所知,它应该是服务器在X和Y之间的连接10.0.0.2处劫持TCP会话。
我该怎么做?
答案 0 :(得分:0)
使用浏览器无法实现您描述的实际方法。您无法启动从后端到浏览器的连接,它必须从浏览器到后端。
您可以使用websockets通过代理创建从后端到客户端的全双工连接。因此,后端可以不断地将新东西推送到浏览器,但是它通过代理,它只是以原始形式将它从后端隧道传送到浏览器。
使用httpd(Apache),可以使用mod_proxy_wstunnel
或者,您可以使用mod_lua
实现此目的,但这是另一个故事。