hostproxy
is a pure TCP proxy for HTTP. It does not fully parse HTTP, it simply searches for the Host
header and injects other headers in to the stream.
var hostproxy = require('hostproxy')
, net = require('net')
;
hostproxy(function (host) {
if (host === 'mysite.com') return net.connect(80, 'mysite.com')
return net.connect(80, 'fallback.com')
}).listen(80)
If no host header is present then host will be null.
hostproxy(function (host) {
if (!host) return // returning nothing will force disconnect the client
return net.connect(80, host)
}).listen(80)
What about adding headers?
hostproxy(function (host, addHeader, address) {
addHeader('x-forwarded-for', address.address)
return net.connect(80, host || 'fallback.com')
}).listen(80)
The address
param is the return value from socket.address().