I have a somewhat strange requirement: let's say a request comes in to host1.com with a Host header of host1.com. I would like to proxy this to host2.com (determined dynamically) but I would like to keep the Host header of host1.com so that I can still do virtual hosts on host2.com for different incoming requests. Therefore, I would like ClientToProxyConnection.identifyHostAndPort to return host2.com without updating the Host header. However, the URI of the HttpRequest is a relative URI. As I wrote that, I guess what I could do is set an absolute URL on the setURI call, let me try that...