Yes. In reverse-proxying scenarios one must rewrite the incoming headers
before a second outbound request is made to the proxy target. Examples:
* `x-forwarded-*` headers
* https:// to http:// support often requires rewriting location headers.
* wss:// to ws:// WebSocket support: must rewrite the x-websocket-origin
header (among others, don't have the spec off-hand)
In the two most popular current implementations:
* node-http-proxy: Reads the incoming headers off of the http.ServerRequest
object, modifies them, and then makes an outbound request to the reverse
proxy target via http.request
* bouncy: Works behind a net.Server instance, but performs all HTTP header
mmalecki has fixed this and should be opening pull requests tonight or
tomorrow. We'll be working on a new version of node-http-proxy which takes
advantage of them after they're merged. Personally I consider this more of
a bugfix than a feature.