【发布时间】:2012-09-22 06:51:53
【问题描述】:
我有自定义 tcp 服务器在端口 5888(虚拟端口)上侦听。代理服务器侦听传入连接。当代理收到 HTTP 请求时,它应该将相同的请求中继到不同的服务器。
例如:
代理接收:http://proxyserver.com/mypage.html 代理应该中继:http://MainServer.com/mypage.html
主服务器的响应应该直接发送到请求客户端。
在将新的 HTTP 请求中继到主服务器之前,我使用套接字来接受连接并解析原始 HTTP 请求。这变得太复杂了,因为我必须将原始 HTTP 请求发送到主服务器,获取响应并将其发送到客户端机器。代理基本上成为中间人。我只想要代理 通信的一方面,即将主机地址更改为 MainServer,然后主服务器应负责将响应发送给请求客户端。
如何做到这一点?
【问题讨论】:
-
代理是定义的中间人。除非代理直接传递有关源的信息,否则目标(主服务器)无法直接回复源。并且由于主服务器将回复没有直接向它发起请求的源机器,因此源机器将需要一个始终侦听连接的进程。这是一个完全定制的要求。我很好奇,你想完成什么?