Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
node-http-proxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
node-http-proxy
Commits
404818b1
Commit
404818b1
authored
Jul 18, 2011
by
DanBUK
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow forwarding for x-forwarded-[for|port|proto] to enabled layering of http-proxies.
parent
baf0b9e2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
3 deletions
+7
-3
lib/node-http-proxy.js
lib/node-http-proxy.js
+7
-3
No files found.
lib/node-http-proxy.js
View file @
404818b1
...
...
@@ -328,6 +328,7 @@ HttpProxy.prototype.close = function () {
// options.host {string} Host of the proxy target.
// options.buffer {Object} Result from `httpProxy.buffer(req)`
// options.https {Object|boolean} Settings for https.
// options.allow_xforwarded_headers {boolean} Don't clobber x-forwarded headers to allow layered proxies.
//
HttpProxy
.
prototype
.
proxyRequest
=
function
(
req
,
res
,
options
)
{
var
self
=
this
,
errState
=
false
,
location
,
outgoing
,
protocol
,
reverseProxy
;
...
...
@@ -340,6 +341,7 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
options
=
options
||
{};
options
.
host
=
options
.
host
||
this
.
target
.
host
;
options
.
port
=
options
.
port
||
this
.
target
.
port
;
options
.
allow_xforwarded_headers
=
options
.
allow_xforwarded_headers
||
false
;
//
// Check the proxy table for this instance to see if we need
...
...
@@ -379,9 +381,11 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
// * `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-port
'
]
=
req
.
connection
.
remotePort
||
req
.
connection
.
socket
.
remotePort
;
req
.
headers
[
'
x-forwarded-proto
'
]
=
res
.
connection
.
pair
?
'
https
'
:
'
http
'
;
if
(
options
.
allow_xforwarded_headers
==
true
)
{
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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment