Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

HTTP Proxy that searches for Host header and avoids any parsing

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

Pure TCP HTTP Proxy

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.

API

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().

Something went wrong with that request. Please try again.