Due to using node-http-proxy in the website, when I refresh a certain page constantly, a error came up as follows:
Proxy error in Kibana { [Error: socket hang up] code: 'ECONNRESET' }
Proxy error in Kibana { [Error: socket hang up] code: 'ECONNRESET' }
http_outgoing.js:335
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
at ServerResponse.res.setHeader (/server/pbe-reborn/node_modules/sails/node_modules/connect/lib/patch.js:133:22)
at ServerResponse.res.set.res.header (/server/pbe-reborn/node_modules/sails/node_modules/express/lib/response.js:577:10)
at ServerResponse.res.location (/server/pbe-reborn/node_modules/sails/node_modules/express/lib/response.js:707:8)
at ServerResponse.res.redirect (/server/pbe-reborn/node_modules/sails/node_modules/express/lib/response.js:746:8)
at ProxyServer.<anonymous> (/server/pbe-reborn/config/http.coffee:45:26)
at ProxyServer.emit (/server/pbe-reborn/node_modules/http-proxy/node_modules/eventemitter3/index.js:117:27)
at ClientRequest.proxyError (/server/pbe-reborn/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js:140:16)
at emitOne (events.js:82:20)
ClientRequest.emit (events.js:169:7)
Socket.socketCloseListener (_http_client.js:235:9)
emitOne (events.js:82:20)
Socket.emit (events.js:169:7)
TCP._onclose (net.js:468:12)
Using http-proxy in my code as follow:
kibana: (req, res, next) ->
if req.url.startsWith('/kibana')
if req.session?.passport?.user
if req.url is '/kibana'
return res.redirect(req.url + '/')
else
req.url = req.url.replace(/^\/kibana/, "")
proxy.web(req, res, {
target: 'http://kibana:5601/'
})
proxy.on('error', (err, req, res) ->
console.log('Proxy error in Kibana', err)
return res.redirect('/404')
)
else
req.session.returnTo = '/kibana/'
return res.redirect('/login')
else
next()
@mario56 please see here for an example of how to prevent this. You cannot assume you can run res.redirect for every error that occurs because headers from the server you a proxying to may have been sent already.
Due to using node-http-proxy in the website, when I refresh a certain page constantly, a error came up as follows:
Using http-proxy in my code as follow: