153 Commits

Author SHA1 Message Date
Maciej Małecki
4d43d81e5c [fix] When client request is aborted, abort server request 2011-12-18 22:49:18 +01:00
Maciej Małecki
63dfc7f175 [fix] In routing proxy, match line beginning
Previous approach failed in case of routing table like:

    {
      'domain.com': 'localhost:9000',
      'a.domain.com': 'localhost:9001'
    }

without `hostnameOnly`. When routing request to `a.domain.com`,
`RegExp` matched first entry (`domain.com`) and returned it.
2011-12-18 21:47:06 +01:00
Charlie Robbins
9f05e6c567 Merge pull request #165 from elfsternberg/master
Fix issue where front-end is HTTPS, back-end is HTTP, and server issues a redirect.
2011-12-13 22:21:51 -08:00
Charlie Robbins
d1b19a1205 Merge pull request #164 from elfsternberg/553e7fbc335a9befd166d472f057aa50452a9d40
Modified the ad-hoc proxy lookup to use _getKey(), rather than the error-prone in-line method.
2011-12-13 22:21:07 -08:00
Ken "Elf" Mathieu Sternberg
411bb51cc6 Fix issue where front-end is HTTPS, back-end is HTTP, and server issues a redirect.
This handles the case where a back-end web application such as Django or
Rails issues a redirect and automatically decorates the URL with the
protocol with which it was addressed.  If the back-ends are internal and
HTTP-only, then they'll issue a URL with 'http://' as the protocol.
This must be fixed before leaving the proxy.

This also handles the (unusual) case where a back-end speaks only
https://, but the user is deploying node-http-proxy to make that service
available to non-SSL capable browsers.  Works only with 301 and 302
codes.
2011-11-29 10:10:16 -08:00
Ken "Elf" Mathieu Sternberg
553e7fbc33 Modified the ad-hoc proxy lookup to use _getKey(), rather than the
error-prone in-line method.

_getKey() will look for options.target as well as
options.host:options.port, and so is useful for a segmented
proxy server where the destination proxies are not constructed before
first references.
2011-11-29 09:52:32 -08:00
Samyak Bhuta
621f9b425a Allowing the common proxy headers' value to be appended in proxy chain scenarios. 2011-11-28 08:56:45 +00:00
Charlie McConnell
3ab02f3ad7 [fix] Fix incorrect depth check. 2011-11-16 19:15:51 -08:00
Max Ogden
c03a450d9b simplify proxytable path segment rewrite logic 2011-11-16 19:15:51 -08:00
Cloud9
2061c71366 Revert "update outgoing.headers.host incase the destination does proxying"
This reverts commit 65b7872e6ad433deae4de823c63629cb341bd649.
2011-11-16 16:42:07 -08:00
Fabian Jakobs
d6ea3a425c don't add upgrade handler if a custom handler is passed in
if a callback but no static proxy is defined and
no routes are provided then handlers.length is 1.
However the upgrade event is still automagically
attached in spite of having an explicit callback.
2011-11-16 16:40:51 -08:00
koichik
152d258ea0 [fix] Avoid Transfer-Encoding: chunked for HTTP/1.0 client, closes #59. 2011-11-16 16:10:00 -08:00
Camilo Aguilar
c98ccb40e9 Fixes memory leak when clients abort connections 2011-11-15 20:20:47 -05:00
Dominic Tarr
f27d26f451 changeOrigin option: set the host header to the proxy destination 2011-11-15 07:41:09 +11:00
Dominic Tarr
65b7872e6a update outgoing.headers.host incase the destination does proxying 2011-11-11 12:27:21 +11:00
Dominic Tarr
182dcd3455 always emit end in 0.4 2011-11-10 16:44:23 +11:00
bradleymeck
7feee194f8 [fix] only set one drain listener while paused 2011-10-22 13:13:10 -05:00
Max Ogden
91e9bb9070 adding tests for url segment proxytable routing 2011-10-15 14:22:36 -07:00
Max Ogden
4d50915373 change proxytable routing to route one level shallower 2011-10-14 15:42:39 -07:00
Florian Traverse
b7adf866b5 added what is necessary for having proxyError on Routing proxywq 2011-10-04 01:49:12 +02:00
Fedor Indutny
45ef87e71b [websockets] add latest websockets support 2011-09-30 03:28:46 +02:00
Joshua Holbrook
1f33943b23 [fix] connection.socket -> socket for source of x-forwarded-for data 2011-09-20 14:34:03 -07:00
Joshua Holbrook
2677bb6c44 [fix] x-forwarded http headers should set properly. 2011-09-20 13:00:59 -07:00
indexzero
f7010e5169 [merge] Merge from significant internal refactor in v0.7.x. No external API changes 2011-09-10 07:05:17 -04:00
indexzero
0eb4917ded [fix] Add x-forward-* headers for WebSocket requests. Closes #74 2011-09-10 06:57:51 -04:00
indexzero
f765f90ec3 [api] Finalized the RoutingProxy API 2011-09-10 03:55:07 -04:00
indexzero
598fe2e38d [api doc] Rebuilt httpProxy.createServer() with the newer high-level RoutingProxy API 2011-09-09 18:14:49 -04:00
indexzero
5927ecd62a [api test dist] Stubbed out the API for the higher-level RoutingProxy object to be exposed by node-http-proxy 2011-09-08 18:22:38 -07:00
indexzero
0eae2a913a [api] Added new close() method which cleans up sockets from HttpProxy instances 2011-09-08 16:55:45 -07:00
indexzero
ec03d72c5d [minor] Move private methods to the bottom of file(s) 2011-09-08 16:53:42 -07:00
indexzero
0e36912906 Fixed large DoS vector in the middleware implementation 2011-09-08 16:44:25 -07:00
indexzero
0c71119ee5 resume() can throw 2011-09-08 16:41:42 -07:00
indexzero
37e2541891 Emit drain if it doesn't happen on its own in 100ms 2011-09-08 16:36:19 -07:00
indexzero
6a7fd14bfa Add flow control 2011-09-08 16:29:15 -07:00
indexzero
ca1d12cf1b [fix] Memory leak hunting. 2011-09-08 16:21:20 -07:00
indexzero
38315f6b1f [minor] More contextual errors when middleware(s) error 2011-09-08 16:07:35 -07:00
Tj Holowaychuk
07c8d2ee60 Fixed large DoS vector in the middleware implementation 2011-09-08 14:36:40 -07:00
indexzero
5575bcf60c [minor] Remove commented out debug statements. 2011-09-08 14:24:43 -07:00
isaacs
558a8a4f79 resume() can throw 2011-09-08 14:06:31 -07:00
isaacs
84be9f2c3a Emit drain if it doesn't happen on its own in 100ms 2011-09-08 14:06:22 -07:00
isaacs
2b9e09b00a Add flow control
Not in the "async/fibers/coro" sense of flow control, but in the TCP
backpressure sense.

Pause the stream when a write isn't flushed, and then resume it once the
writable stream drains.
2011-09-08 14:06:14 -07:00
isaacs
f4fcf93403 Memory leak hunting.
Detach listeners and clean up buffer on error
2011-08-31 11:47:44 -04:00
indexzero
e1c41d0694 [fix] Add guards to every throw-able res.end call 2011-08-28 21:27:01 -04:00
indexzero
de4a6fe8a5 [fix] Only set x-forward-* headers if req.connection and req.connection.socket 2011-08-28 21:21:35 -04:00
indexzero
f6dc12a971 [fix] Use req.connection for all x-forward-* headers 2011-08-28 21:14:42 -04:00
isaacs
7bda25b1c6 Add guards to every throw-able res.end call 2011-08-28 15:52:35 -07:00
isaacs
62201a0917 Fix #95 Don't look on req.connection if it's not set. 2011-08-28 13:41:19 -07:00
indexzero
340be42797 [minor] Dont use .bind() 2011-08-28 05:28:57 -04:00
indexzero
daf9231a66 [test fix] A few minor fixes to ensure basic WebSocket tests are working. Better scope tests by supported protocol 2011-08-28 05:06:14 -04:00
indexzero
be4562da9f [api test] Updated httpProxy.createServer() for new API exposed by simplified HttpProxy object.
[breaking] Temporarily removed pending refactor: middleware & ProxyTable support
2011-08-28 04:40:51 -04:00