node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


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.


var hostproxy = require('hostproxy')
  , net = require('net')
hostproxy(function (host) {
  if (host === '') return net.connect(80, '')
  return net.connect(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)

What about adding headers?

hostproxy(function (host, addHeader, address) {
  addHeader('x-forwarded-for', address.address)
  return net.connect(80, host || '')

The address param is the return value from socket.address().