【问题标题】:Node http requests not going through proxy节点 http 请求不通过代理
【发布时间】:2015-10-27 13:57:43
【问题描述】:

我们目前正在 node-webkit 中构建一个桌面应用程序,我们需要向远程服务器发送 http 请求。为此,我们决定使用 request,一个用于 node 的 http 包装模块。

除了我们的一台机器外,这在所有机器上都可以正常工作。下载的代码有点像这样:

    var options = {
        url: url
    };
    request.post(options
        , function (error, response, body)
        {
            if (!error && response.statusCode == 200)
            {
                cb && cb(null, body);
            }
        }
        ).on('error', function (err)
        {
        }).pipe(writeStream);

因此,我们在我的机器上得到的结果是这样的:

在我们的网络上,代理服务器是 172.24.8.14,我的地址是 172.24.9.130。节点通过与目标服务器联系的代理服务器发送请求。发回的结果是预期的 301。

...在另一台机器上:

这一次 Node 尝试将请求直接发送到目标服务器。这导致代理完全阻止请求。

奇怪的是,我们没有在代码中指定代理,但是请求似乎确实通过了代理......但不是在另一台机器上。

这有什么原因吗?节点如何以某种方式检测代理并将请求发送到代理?

【问题讨论】:

  • 代理设置可能在某些机器的环境变量中设置,而不是在其他机器中...
  • 有趣的是,我相信我们检查了两台机器注册表中的代理设置,但我认为环境变量中没有任何内容我会检查

标签: node.js http proxy node-webkit node-request


【解决方案1】:

原因是我们的网络使用了 NTLM 代理,它要求 ISA 客户端在我们的机器上运行,但它没有在另一台机器上运行。在该机器上安装 ISA 客户端允许流量正常通过代理。

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多