diff --git a/lib/node-http-proxy.js b/lib/node-http-proxy.js index 43fa054..5e99fe7 100644 --- a/lib/node-http-proxy.js +++ b/lib/node-http-proxy.js @@ -344,9 +344,16 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) { } // - // Add `x-forwarded-for` header to availible client IP to apps behind proxy + // Add common proxy headers to the request so that they can + // be availible to the proxy target server: + // + // * `x-forwarded-for`: IP Address of the original request + // * `x-forwarded-proto`: Protocol of the original request + // * `x-forwarded-port`: Port of the original request. // - req.headers['x-forwarded-for'] = req.connection.remoteAddress || req.connection.socket.remoteAddress; + req.headers['x-forwarded-for'] = req.connection.remoteAddress || req.connection.socket.remoteAddress; + req.headers['x-forwarded-port'] = req.connection.remotePort || req.connection.socket.remotePort; + req.headers['x-forwarded-proto'] = res.connection.pair ? 'https' : 'http'; // // Emit the `start` event indicating that we have begun the proxy operation.