Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Socket Hangup error Http-Proxy NodeJS

I am getting following error in my server console when user click signout button.

Error: socket hang up
    at createHangUpError (http.js:1472:15)
    at Socket.socketCloseListener (http.js:1522:23)
    at Socket.EventEmitter.emit (events.js:95:17)
    at TCP.close (net.js:466:12)

Here is my proxy_server:

var fs=require('fs');
var options = {
    key: fs.readFileSync('key/xxxxxxxxx.pem'),
    cert: fs.readFileSync('key/xxxxx.pem'),
    ca: fs.readFileSync('key/gd_bundle-g2-g1.crt')
};

var express=require('express'),
    https=require('https'),
    httpProxy = require('http-proxy'),
    http=require('http'),
    app=express(),
    app1=express(),
    server=https.createServer(options,app),
    serverhttp=http.createServer(app1);

var proxy = httpProxy.createProxy({ target: 'http://localhost:9898',secureOptions:'constants.SSL_OP_NO_TLSv1_2'});
var proxySig = httpProxy.createProxy({target:'http://localhost:8881',secureOptions:'constants.SSL_OP_NO_TLSv1_2'});
var callSig = httpProxy.createProxy({target:'http://localhost:6666',secureOptions:'constants.SSL_OP_NO_TLSv1_2'});
var proxyCdn = httpProxy.createProxy({target:'http://localhost:3030',secureOptions:'constants.SSL_OP_NO_TLSv1_2'});
// var proxyhttps= new httpProxy.createProxy({ target: 'https://localhost:443',secure:false});
var errorhandler = require('errorhandler');

app.all('*', function(req,res){
    if(req.hostname=='xxxxxxxx.in')
    {
        proxy.web(req, res); 
    }
    else if(req.hostname=='xxxx.in')
    {
        proxyCdn.web(req, res);
    }
    else if(req.hostname=='xxxxxx.in')
    {
        proxySig.web(req, res); 
    }
    else if(req.hostname=='xxxxx.in')
    {
        callSig.web(req, res); 
    }
});

app1.all('*', function(req,res){
    res.redirect('https://'+req.hostname);;
});

serverhttp.listen(80);
server.listen(443);
like image 771
Murugan Pandian Avatar asked Aug 13 '14 06:08

Murugan Pandian


People also ask

What is socket hangup error?

The error code [socket hang up][ECONNRESET] indicates that the target server has closed the connection with Edge Microgateway.

What causes a socket hangup?

When a socket hang up is thrown, one of two things happens: When you're a customer, When you send a request to a distant server as a client and don't get a response in a timely manner. This error is caused by the end of your socket.

Could not get response error socket hang up postman?

Socket Hang up, where the server closed the connection for some reason. An example why this may occur is an incorrectly input client certificate or participant identifier preventing the message to reach the server. ECONNRESET, where an endpoint may be resetting the connection for some reason.


1 Answers

You need to handle errors on each of your httpProxy objects. For example:

proxy.on('error', function (error, req, res) {
    var json;
    console.log('proxy error', error);
    if (!res.headersSent) {
        res.writeHead(500, { 'content-type': 'application/json' });
    }

    json = { error: 'proxy_error', reason: error.message };
    res.end(JSON.stringify(json));
});

This thread was useful to me: https://github.com/nodejitsu/node-http-proxy/issues/527

like image 146
John Galambos Avatar answered Oct 14 '22 23:10

John Galambos