Same Node JS http请求在一台服务器上获得ECONNRESET,在另一台服务器上获得OK

时间:2016-07-27 21:42:42

标签: node.js http

我写过一个使用express的服务器。它在AWS中。我也在AWS中克隆了它。 我尝试使用Node JS中的一个示例实现REST API:

var http = require('http');
    var data = JSON.stringify({
    });

    var options = {
        timeout: 180000,
        host: server,
        port: '80',
        path: restAPI,
        method: 'GET',
        headers: {
            'Content-Type': 'application/json; charset=utf-8',
            'Accept': "application/json",
            'Cache-Control': "no-cache"
        }
    };


    var req = http.request(options, function (res) {
    });
    req.on('error', function (err) {
        console.log(err);
    });
    req.write(data);
    req.end();

如果我使用服务器1有'服务器',它的工作完美。相反,如果我使用服务器2,它将无法返回ECONNRESET Socket挂起。从服务器端,两台服务器都使用200来回答API。如果我使用从浏览器运行的示例,它可以完美地与BOTH服务器配合使用。

它看起来像Node JS(所有服务器和客户端中的v4.4.7)中的一个问题。任何人都可以指出我的解决方法。我接受改变我正在做请求的方式,可能正在使用另一个模块。

1 个答案:

答案 0 :(得分:-1)

问题是.write。删除它现在正在工作。一台服务器与另一台服务器之间的区别在于第一台服务器是通过CloudFlare连接的,而第二台服务器是直接连接的。直接连接第一台服务器失败的方式与第二台服务器相同。 现在,一切正常。非常感谢你的帮助艾伦。你是那些试图指向人而不是帮助的人之一。感谢您每天让世界变得更美好!你真棒!