Tag: 代理

节点请求中的NTLM代理validation

我正在尝试使用需要NTLM身份validation的企业Web代理的Node进行请求。 我已经尝试过使用代理服务器这样的一些库,但是收效甚微。 这里是我的代码使用请求库和ntlm.js类似于代理代理的简化版本。 我希望在最后一次请求通话后得到一个成功的回应,但由于某种原因,我仍然得到一个407 – var ntlmRequest = function(req) { var ntlmOptions = {}; ntlmOptions.ntlm = {}; ntlmOptions.method = 'GET'; ntlmOptions.path = 'http://www.jsonip.co.uk'; ntlmOptions.ntlm.username = 'USERNAME'; ntlmOptions.ntlm.password = 'Pa$$word'; ntlmOptions.ntlm.workstation = 'PC-NAME'; ntlmOptions.ntlm.domain = 'DOMAIN'; var type1message = ntlm.createType1Message(ntlmOptions.ntlm); var requestOptions = { url: 'http://www.jsonip.co.uk', proxy: 'http://webproxy.domain.com:8080', headers: req.headers }; requestOptions.headers['Proxy-Authorization'] = type1message; requestOptions.headers['Proxy-Connection'] = […]

NodeJS / ExpressJS:代理HTTPvideostream(来自VLC)

使用VLC 2.2.1,我创build了一台由名为server的计算机托pipe的摄像头的HTTPstream。 在另一台电脑上, 客户端 ,如果我打开vlc,并打开networkingstreamhttp://server:8080我可以很好地看到networking摄像头的video。 HTTPstream的wireshark捕获如下所示: GET / HTTP/1.1 Host: server:8080 User-Agent: VLC/2.2.0-rc2 LibVLC/2.2.0-rc2 Range: bytes=0- Connection: close Icy-MetaData: 1 HTTP/1.0 200 OK Content-type: application/octet-stream Cache-Control: no-cache FLV………………….. onMetaData…….duration………..width.@………height.@~……. videodatarate.@.@…….videocodecid.@………encoder.. Lavf56.1.0..filesize…. etc… 在客户端计算机上,我有一个在NodeJS v5&Express v3下运行的API,我想要有一个url: http:// client / video作为http:// server:8080的代理,这样用户只能看到一个端点。 我看到几个npm模块声称是“代理”,但由于内容的特殊性(实时videostream),我不确定我应该做什么。

在Grunt服务器中安装经过身份validation的公司代理

我开始在现有的Angular JS应用程序上工作,但是我无法使它在公司代理的后面工作。 在应用程序中,所有后端Web服务调用都使用Gruntfile.js中的代理configurationredirect到不同的服务器(如https:// servicesURL / api / )。 如果我在经过身份validation的公司代理之外运行应用程序,则完美工作,但是在代理后面,我发现所有的Web服务调用都失败,出现错误: An error has occurred: {"code":"ENOTFOUND","errno":"ENOTFOUND","syscall":"getaddrinfo","hostname":"servicesURL","host":"servicesURL","port":443} grunt文件代理configuration如下: connect: { options: { port: 9005, hostname: 'localhost', useAvailablePort: true, livereload: 35712 }, proxies: [ { context: ['/api'], host: 'serviceURL', port:443, https: true, xforward: true } ], livereload: { options: { middleware: function (connect) { return [ connect.static('.tmp'), connect().use( '/bower_components', […]

使Node.js使用http_proxy,https_proxy和no_proxy环境variables

我有一个节点服务器,并基于最近的一些基础设施更改,我需要确保所有出站请求正在通过Squid代理,除了NO_PROXY环境variables中列出的主机的stream量外。 设置HTTP_PROXY,HTTPS_PROXY和NO_PROXY似乎不影响节点服务器的行为,但我需要一种方法来做到这一点,而无需手动编辑库。 我有10个图书馆需要考虑到这种代理行为的外部服务。 有没有其他方法可以全局设置代理行为,包括尊重NO_PROXY?

express-http-proxyerror handling

我使用node,express和express-http-proxybuild立了一个本地代理服务器,它将请求redirect到只能通过VPN使用的远程后端。 这在VPN连接build立时运行良好。 但是,当没有VPN连接,我得到这个错误: _http_outgoing.js:346 抛出新的错误('发送后不能设置标题')。 ^ 错误:发送后无法设置标题。 在ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:346:11) 在/path/to/my/project/proxy/node_modules/express/lib/application.js:152:9 (/path/to/my/project/proxy/node_modules/express/lib/router/index.js:150:14) 在SendStream.error(/path/to/my/project/proxy/node_modules/serve-static/index.js:74:37) 在emitOne(events.js:77:13) 在SendStream.emit(events.js:169:7) 在SendStream.error(/path/to/my/project/proxy/node_modules/serve-static/node_modules/send/lib/send.js:147:51) 在SendStream.onStatError(/path/to/my/project/proxy/node_modules/serve-static/node_modules/send/lib/send.js:248:48) at /path/to/my/project/proxy/node_modules/serve-static/node_modules/send/lib/send.js:320:26 在FSReqWrap.oncomplete(fs.js:82:15) 我的代理设置是: app.use('/ the / api',proxy('the.domain.behind.vpn:8026',{ 超时:4000, forwardPath:function(req,res){ 的console.log(nodeUrl.parse(req.url)。path); return“/ the / api”+ nodeUrl.parse(req.url).path; }, intercept:function(rsp,data,req,res,callback){ data = data.toString(“utf8”)。replace(/ http \:\ / \ \ \ .domain \ .behind \ .vpn \:8026 / g,“http:// localhost:61000”); callback(null,data); }, decorateRequest:function(proxyReq,originalReq){ if(proxyReq.method […]

我可以在TypeScript中使用自定义模块parsing函数(如“proxyquire”)来代替require()吗?

我有一个TypeScript文件config.ts将与节点运行: import myDependency = require('my-dependency'); export = { doSomething = () => { … } } 在其他的TypeScript文件中,我可以import这个文件的完整types的安全性: import config = require('./config'); config.doSomething(); config.doSomethingElse(); // compiler error, this method doesn't exist 现在我想unit testing这个脚本。 为了模拟这个脚本所require()的依赖require()我使用了proxyquire ,它让我提供脚本在调用require()时候得到的值。 以下是我的testing可能的样子: import proxyquire = require('proxyquire'); const config = proxyquire('./config', { 'my-dependency': {} // this mocked object will be provided when config.ts […]

Nodejs请求代理stream(mjpeg)连接永远不会结束

(不必要的背景)我有一个nodejs服务器与expressjs框架,代理stream媒体摄像头饲料。 我需要这个的原因是因为复杂的CORS问题,mjpgstream必须来自这个服务器。 //proxy from webcam server to avoid CORS complaining app.get('/stream1',function(req,res){ var url="http://camera.nton.lviv.ua/mjpg/video.mjpg" request(url).pipe(res); }); 问题:这个问题很简单。 request(url).pipe(res)永远不会closures,因为源文件是从未结束的mjpeg。 当客户端(浏览器;目的地)不再可用时,我需要find强制closures此pipe道的方法,如closures窗口。

proxyquire with require.exports = ClassConstructor

如果我有一个导出单个类的模块,我该如何用proxyquire模拟/存根? 目前我有以下几个,似乎工作,但相当长,并没有正确使用proxyquire : 一些-class.js var SomeClass = function(){ console.log("constructed SomeClass"); } SomeClass.prototype.shout = function(){ console.log("HELLO!"); } module.exports = SomeClass; 我-module.js var SomeClass = require('some-class'); module.exports.doSomething = function(){ var a = new SomeClass(); a.shout(); } testing我的-module.js // :::: bit I'd like to avoid :::::: var cls = require('some-class'); var SomeClassStub = function(){ cls.apply(this, arguments); }; SomeClassStub.prototype […]

http-proxy模块中的错误:必须提供一个合适的URL作为目标

我是Node.JS新Node.JS并在VPS上部署了第一个应用程序。 在8000端口上运行后,我决定创build一个http-proxy来将每个域转发到其特定的端口。 我喜欢这里的一个小应用程序: var http = require('http'), httpProxy = require('http-proxy'); var option = { router : { 'domain.com' : 'http://88.198.86.100:8000' } }; var proxyServer = httpProxy.createServer(option); proxyServer.listen(80); 88.198.86.100 is my server ip 。 所以,我的问题在这里显示,当我在我的浏览器电脑(谷歌浏览器)键入88.198.86.100 ,我的代理服务器应用程序被抛弃,并给出了这个错误: C:\Users\Administrator\Desktop\Nodejs\node_modules\http-proxy\lib\http-proxy\index.js:119 throw err; ^ Error: Must provide a proper URL as target at ProxyServer.<anonymous> (C:\Users\Administrator\Desktop\Nodejs\node_modules\http-proxy\lib\http-proxy\index.js:68:35) at Server.closure (C:\Users\Administrator\Desktop\Nodejs\node_modules\http-proxy\lib\http-proxy\index.js:125:43) at emitTwo […]

什么是替代的枚举()的JavaScript代理陷阱for … in

枚举 ()的替代方法是什么 为JavaScript代理陷阱 for … in 由于enumerate()已被弃用。