¿Cómo detectar cuándo el servidor de destino está inactivo en http-proxy?

Estoy tratando de crear un servidor orientado a Internet para un servidor de nodo expreso interno que estoy ejecutando en una máquina con Windows. Para este propósito, tengo una caja virtual de Unix con puertos abiertos y estoy usando http-proxy para hacer un servidor proxy que redirige la solicitud a mi servidor interno.

Quiero mostrar a los usuarios una página html personalizada si el servidor interno está inactivo. Tengo el siguiente código (parte relevante) que se ejecuta en el cuadro de unix virtual:

var proxy = httpProxy.createProxyServer({target:'http://'+addr.to[2]+':'+addr.to[3], xfwd:true, ws:true}); proxy.listen(addr.from[3], addr.from[2]); winston.info('--Proxy server started listening on: '+addr.from[2]+':'+addr.from[3]); proxy.on('error', function (err, req, res) { console.log(err); try{ winston.error('Middleware server down, Delivering 404 page'); res.writeHead(500, { 'Content-Type': 'text/html' }); fs.readFile(__dirname+'/404.html', function (err, html) { if (err) { throw err; } res.write(html); res.end(); }); } catch(er) { winston.error('Error:'+er); } }); 

El código anterior funciona bien si lo ejecuto en máquinas con Windows. Por alguna razón, no funciona cuando ejecuto en el cuadro de Unix. ¿Alguien puede ayudarme a entender por qué sucede esto? Sería fantástico si pudiera proporcionar medios alternativos para detectar cuándo el servidor de destino está inactivo en http-proxy.

Hazme saber si necesitas cualquier información adicional.