Tag: 代理

在Cloud9 IDE中获取用户的真实IP地址

在node.js + socket.io中,我使用这个代码来获取用户的IP地址: var clientIP = socket.handshake.headers['x-forwarded-for'] || socket.handshake.address.address; 但结果是错误的。 我console.log这些值,并得到以下结果: socket.handshake.address.address显然是内部IP(127.xxx) x-forwarded-for是cloud9的代理之一(107.23.232.64,54.236.78.114,107.23.123.140)。 所以显然是使用双重代理,其中一个代理层不提供'x-forwarded-for'头部,对吗? 使用cloud9绝对不可能获得真正的用户IP吗? 这对我的项目是至关重要的。

在NodeJS中使用代理获得“无效协议”

我试图通过nodeJs代理连接,但我没有任何结果或错误。 我正在使用mikeal/request 。 我已经在命令行testing了代理,它正常工作: $ http_proxy=localhost:9060 wget http://wtfismyip.com/json $ cat json 回报 { "YourFuckingIPAddress" : "62.236.108.73", "YourFuckingLocation" : "Finland", "YourFuckingHostname" : "effi.org", "YourFuckingISP" : "TDC Oy Finland" } 正如所料。 但是我在nodeJs中的请求: router.route('/proxy-ip') .get(function (req, res) { var request_options = { url: 'http://wtfismyip.com/json', proxy: { host: "http://localhost", port: 9060 } }; console.log({request:request_options}); request.get(request_options, function (error, response, json) […]

我应该在收到304后closures代理连接吗?

我有一个HTTP请求/回应问题。 比方说,我有一个代理服务器,只是将客户端的请求转发给第三方服务器,第三方服务器的回应给客户端: var http = require('http'); var url = require('url'); http.createServer(function (req, res) { var opts = { hostname : 'www.example.com', port : 80, path : req.url, method : req.method, headers : req.headers }; opts.headers.host = opts.host; var proxyReq = http.request(opts, function (proxyResponse) { res.writeHead(proxyResponse.statusCode, proxyResponse.headers); proxyResponse.pipe(res); }); req.pipe(proxyReq); }).listen(3000); 假设客户端是caching感知的(比如浏览器),并且它传递了一个if-modified-since或者if-none-match (或者其他)头部,导致第三方服务器响应一个304状态码。 在技​​术上,服务器不应该发送一个正文,客户端在收到304之后不关心响应主体。 通过在服务器的代理响应处理程序中这样做是否有意义(并且会节省任何带宽/资源),这些服务器错误地使用304: var […]

为每个路线重新加载浏览器(Express + gulp + Browsersync)

我已经build立了一个快速生成器生成一个简单的快速Web服务器如下: express test -ejs 一切工作正常,我有以下文件夹(几个变化): 我现在想要实现的是: – 对于我正在“/routes/*.js”和“./*.js”中处理的每个文件,保存重新加载服务器和浏览器 – 对于“/ views”和“/ public”中的每个文件,只保存重新加载浏览器 为此,我在代理模式下设置了一个带浏览器同步的gulp file.js,如下所示: var server = require('gulp-develop-server'); var bs = require('browser-sync').create(); (some tasks for checking js and less …) var options = { server: { path: './bin/www', execArgv: ['–harmony'] }, bs: { proxy: { target: 'http://localhost:5000', middleware: function (req, res, next) { console.log(req.url); next(); […]

NodeJS请求错误发送multipart / form-data

我正在使用Node.js应用程序作为Web服务的代理。 我能够传递简单的应用程序/ JSON请求身体分析器,但它不能处理多部分/表单数据。 为此,我正在尝试使用请求模块,但在将文件附加到请求时出现错误: 错误:结束后写入 在ClientRequest.OutgoingMessage.write(_http_outgoing.js:413:15) 在Request.write(./ node_modules / request / request.js:1362:25) 以下是触发此错误的代码: var form_data = {}; for (var key in req.files){ form_data[req.files[key].fieldname] = fs.createReadStream(req.files[key].path); log.debug("File :", req.files[key].fieldname) } var multipart_request = request_module({ url: 'http://example.com', method: 'POST', headers: req.headers, body: JSON.stringify({<some content here>}), formData: form_data }, function(error, response, body){ if(error){ log.debug(error); res.status(500).send('{"message": "Server error.}'); } […]

使用像fiddler一样的提取API的代理

如何使用Fetch API设置代理 我正在开发一个node.js应用程序,我想看看HTTPS响应的响应正文。 我正在使用这个使用节点http的npm包里面: https : //www.npmjs.com/package/isomorphic-fetch 我试图设置envvariables,如: set https_proxy=http://127.0.0.1:8888 set http_proxy=http://127.0.0.1:8888 set NODE_TLS_REJECT_UNAUTHORIZED=0 但它似乎只适用于请求NPM节点模块。 我总是得到以下消息: http://127.0.0.1:8888 (node:30044) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): FetchError: request to https://www.index.hu failed, reason: read ECONNRESET

如何在Angular CLI中configuration代理

我创build了一个新的@ angular / cli项目,并在根组件中添加了一个http GET调用。 没有使用代理这工作正常。 export class AppComponent implements OnInit { constructor(private http: Http) {} ngOnInit() { this.http .get('https://dog.ceo/api/breeds/list/all') .map(response => response.json()) .subscribe(data => console.log(data)); } } 当我尝试添加在Angular CLI wiki中描述的configuration时,事情就会出错。 我的proxy.conf.json文件: { "/api": { "target": "https://dog.ceo", "secure": false } } 我将组件中的URL更改为/api/breeds/list/all 。 而我运行ng serve –proxy-config proxy.conf.json 然后,我在浏览器控制台中发出内部服务器错误消息。 而在我开始服务的terminal,我得到这个消息[HPM] Error occurred while trying to proxy […]

build立一个反向代理

我从头开始构build一个反向代理。 要求是: 1)超级可扩展。 它必须处理很多并发请求(也是stream式处理,在我的情况下,1000个请求/秒将是一个很好的性能) 2)超快速(非阻塞)。 3)没有C / C ++或Erlang 4)容易mantain – 即使是,大会是不是一个选项:) 经过一番研究,大部分人都build议使用node.js或Scala ,你认为这是什么工作最好的解决scheme? 您将使用哪种技术来构build这种代理? 谢谢

dynamic服务定位器在JavaScript中?

我正在尝试使用Harmony代理(Node.js)获得用JavaScript编写的dynamic服务定位器。 基本上你会创build一个新的容器: var container = new Container(); 然后,您就可以像传统的服务定位器一样设置和获取值: container.set('FM', {}); container.get('FM'); container.get('FM', function(FM) { }); 你甚至可以拥有像子对象一样的命名空间: container.set('FM.Object', {}); 问题在于dynamic别名。 var App = container.alias('App'); 创build别名时,会创build一个新的代理对象,您可以像传统对象那样操作它,但它是get()和set()方法的别名。 代替: container.get('App.Hello'); 有了别名,你可以使用: App.Hello 问题在于深名称空间。 假设你试图访问App.Hello.World.Controller ,因为它一次通过代理一个命名空间,而不是一次全部(像那个完整的命名空间)。 如何知道用户是否正在调用App.Hello来检索存储在服务定位器中的值,或者如果用户想要继续访问更深的命名空间? 你不能(从我试过的)。 你还能用其他方法来完成这个吗? 具有语法App.Hello.World ,它将返回一个代理,如果它将访问一个更深的命名空间,或者存储在服务定位器中的值。 var App = container.alias('App'); App.Controller.Home.Method.Index // It would go through: App -> Proxy App.Controller -> Proxy or Value? App.Controller.Home […]

如何使用node.js https的http代理?

我想使用标准的https客户端从node.js进行https请求调用。 但我无法直接从我的networking到达远程服务器,需要通过代理。 如何告诉node.js使用代理? 我试着select这个post { path : 'https://api.xxx.com:8081/token'; host : 'proxy-us.xxxx.com'; port : 8082; method : POST_METHOD; headers : { 'host': "api.xxx.com:8081" } 但从来没有达到