Http-server: Error handling on proxy error

Created on 14 Oct 2015  路  5Comments  路  Source: http-party/http-server

What is the graceful way to handle proxy errors?
Currently what happens if the server that should be proxied to fails, is that the application crashes with a:

.../node_modules/http-server/node_modules/http-proxy/lib/http-proxy/index.js:119
    throw err;
          ^
Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)

The proxy object is not available. So I can not add an error handler. Something like the following would be very usefull:

  if (typeof options.proxy === 'string') {
    var proxy = httpProxy.createProxyServer({});
    before.push(function (req, res) {
      proxy.web(req, res, {
        target: options.proxy,
        changeOrigin: true
      });
    });
    // NEW CODE HERE
    if (options.proxyErrorHandler) {
      proxy.on('error', options.proxyErrorHandler);
    }
    // END NEW CODE HERE
  }

This is just an idea. But custom handling of errors in the proxy would be more useful to me, then an exception. :)

Most helpful comment

I also met this error when my target server was starting and not yet ready to be used.

When ECONNREFUSED happens, instead of killing the http-server process, it is possible to simply return "503 Service Unavailable" to the client, keeping the http-server service alive?

Or at least, can be helpful to provide an option to disable this default behavior (exit process), returning 503 http code instead.

All 5 comments

+1 !
a switch on cli command too !

I also met this error when my target server was starting and not yet ready to be used.

When ECONNREFUSED happens, instead of killing the http-server process, it is possible to simply return "503 Service Unavailable" to the client, keeping the http-server service alive?

Or at least, can be helpful to provide an option to disable this default behavior (exit process), returning 503 http code instead.

Any update on this? I have a similar issue (already posted here http://stackoverflow.com/questions/38795695/http-proxy-handling-econnrefused-and-econnreset before I found this).

Need this too. Any updates?

Any updates?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lacivert picture lacivert  路  3Comments

isomorphisms picture isomorphisms  路  5Comments

dumptyd picture dumptyd  路  4Comments

Altiano picture Altiano  路  7Comments

ghost picture ghost  路  4Comments