Node.js 代理后面的nodej的简单示例

Node.js 代理后面的nodej的简单示例,node.js,https,proxy,Node.js,Https,Proxy,下面是一个简单的nodejs脚本,用于将node用作https客户端与外部世界进行交互。如何修改它,以便在公司代理(如http://10.10.10.10:8080 var https = require('https'); var options = { hostname: 'encrypted.google.com', port: 443, path: '/', method: 'GET' }; var req = https.request(options, funct

下面是一个简单的nodejs脚本,用于将node用作https客户端与外部世界进行交互。如何修改它,以便在公司代理(如
http://10.10.10.10:8080

var https = require('https');

var options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};

var req = https.request(options, function(res) {
  console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);

  res.on('data', function(d) {
    process.stdout.write(d);
  });
});
req.end();

req.on('error', function(e) {
  console.error(e);
});
----更新---

我找到了如何使用npm“请求”包()的方法。仍然想知道如何使用vanilla节点库实现这一点

var request = require('request').defaults({proxy:'http://my.proxy.server:8080', agent:false});
request('https://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
  }
})

通常,最好在系统级别处理代理—将操作系统配置为使用代理而不是脚本。但是,这也可能失败,因为大多数公司代理没有打开所有端口

一个通用的解决方案是让服务器(EC2或Rackspace实例)充当您自己的代理,并让它在端口443上侦听ssh。端口443在企业防火墙中为https打开

此时,您可以通过隧道将所有本地网络流量传输到服务器,或者通过ssh传输到服务器并在那里运行脚本


如果要使脚本特定于代理,则脚本的可移植性不会很高,也不会因代理配置更改而中断而使生产变得更硬。

查看之前在SOi上询问的问题的答案,也会遇到同样的问题:(