Tag: 反向代理

如何在同一台计算机上(多个域和证书,​​一个VPS和IP)将https反向代理设置为多个nodejs-https-servers,

目前我们在一个VPS上有大约10个客户网站和networking系统。 他们都拥有相同的知识产权。 我们已经使用node-http-proxy在nodejs中构build了自己的代理逻辑,并且它匹配域并将其传递给不同站点的不同端口上的节点-http服务器,或者在没有nodejs-service的情况下传递给apache设置一个特定的path。 这在一段时间里很安静。 现在我们正在为其中一个客户实施信用卡付款,并且需要https连接。 我记下代理处理https和它的作品。 但是,我们不想在代理上使用客户证书。 当另一个客户站点需要https连接时,我们需要这个工作。 是否有可能build立一个nodejs-reverse-proxy来传递https请求,而不用“validation”它,这样接收节点-http-server就certificate了这一点。 还是其他一些反向代理,如果不能用nodejs完成,在我们之前呢?

build立一个反向代理

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

Node.js – 我将如何转发HTTPstream量(反向代理)?

我需要什么本质上是一个反向代理,但我需要在Node.js中,因为我将不得不放入一些自定义function。 gateway将是唯一可见的服务,它需要将stream量转发到内部服务networking。 一个简单的302不会在这里工作。 我怎么能真正实现这个Node.js的asynchronous性质呢? 有没有使用这个知名的库?

在可以处理多个安全域的NodeJS中创build一个反向代理

我正在尝试在NodeJS中创build一个反向代理。 但我一直在运行的问题是,即使我想为多个域服务,我也只能在同一个端口(443)上提供一套authentication/密钥对。 我已经做了研究,并继续跑到同一个路段: 可以服务多个域的节点脚本从非安全的本地源(http本地访问和服务https公共) 让我dynamic服务器SSL证书通过域标头 例: https://www.someplace.com:443将从http:// thisipaddress:8000中获取并使用www.someplace.com的证书和密钥文件 https://www.anotherplace.com:443将从http:// thisipaddress:8080中提取,并使用www.anotherplace.com的证书和密钥文件 等。 我看过使用NodeJS的https.createServer(options,[requestListener]) 但是这个方法每个端口只支持一个证书/密钥对 我找不到根据域标头dynamic切换证书的方法 我不能要求我的人使用自定义的https端口 如果我为多个域名提供相同的SSL证书,即使它是安全的,我也会碰到浏览SSL证书错误 我看着node-http-proxy,但据我所见,它有相同的限制 我查看了Apache的mod-proxy和nginx,但我宁愿有一些我可以直接控制的东西 如果任何人都可以向我展示一个使用NodeJS和https.createServer或node-http-proxy从同一端口号(443)提供多个安全域的示例,那么我将对此感激不尽。

如何更新运行的Node.js服务器?

据我所知,Node.js服务器基本上是一个JavaScript文件,由node可执行文件运行。 有没有可能在不停止请求处理的情况下更新这个文件? 我猜这个节点的可执行文件必须停止,所以我想我应该使用一个反向代理。 例如: 原始服务器版本侦听localhost:50001 代理服务器在webinterface:80上侦听请求,并将它们转发到localhost:50001 新的服务器版本应该在localhost:50002上启动 代理服务器转发目标应该更改为localhost:50002 原始的服务器版本应该停止 这是一个有效的方法吗? 如何在多台服务器上自动完成版本更新(可从同一个局域网访问)?

如何更新http呼叫的位置

即时通讯从以下链接使用反向代理,目前我正在获取一些位置,我想更新它(位置),我该怎么做? proxy.on('proxyRes', function (proxyRes, req, res) { res.headers.location = 'http:/a/b/' }); 我需要改变它,例如 res.headers.location ='http:/ c / d /'我将处理如何更改URL的逻辑,但我想知道如何更新它… https://github.com/nodejitsu/node-http-proxy

使用http-proxy向新端口发送代理请求

我使用这个代码我想要创build代理,所有的应用程序调用到端口3000将被路由到“端口”3002端口 var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer(); http.createServer(function (req, res) { proxy.web(req, res, { target: 'http://localhost:3002' }); }).listen(3000); // Create target server http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2)); res.end(); }).listen(3002); 现在,当我运行与原始端口(3000)的应用程序,我在浏览器中看到 请求成功代理到3002 当我将端口(在浏览器中)更改为3002时,我仍然收到相同的消息,为什么? 可以吗? […]

Nodejs反向代理性能

我正在研究使用Node作为反向代理的可能性。 我的项目的主要目标之一是它是非常高的性能。 所以我已经设置了一个节点服务器来代理请求到目标节点服务器,无论请求会以“hello world”响应。 使用Apache Bench我已经对每秒处理的请求数做了一些比较。 代理,目标和调用者分别位于AWS的单独M1大型实例中。 我的结果令人沮丧和困惑。 直接从调用者到目标: ab -c 100 -n 10000 http://target-instance/ =〜2600个请求/秒 从调用者通过代理到目标 ab -c 100 -n 10000 http://proxy-instance/ =〜1100个请求/秒 使用lighttpd,我能够在代理和目标上获得约3500次/秒的请求 我对代理服务器性能不如目标服务器感到失望。 当比较像lighttpd这样的其他产品时,我已经看到代理实现了与目标相当的结果,所以我很困惑Node(应该快速减轻)何时达不到。 这里是我在Node v0.5.9中的代理代码:我错过了什么吗? var server = http.createServer(function(req, res){ var opts = { host: 'target-instance', port: 80, path: '/', method: 'GET'}; var proxyRequest = http.get(opts, function(response){ response.on('data', function(chunk){ res.write(chunk); }); […]

在带有apache的服务器上使用socket.io和nodejs作为反向代理

我正试图使用​​Node.js和Socket.IO在浏览器和客户端之间进行消息传递,遵循指南 。 但是,我不得不在Apache后面设置反向代理。 所以,而不是example.com:8080节点,我使用example.com/nodejs/。 这似乎会导致Socket.IO失去它自己的意义。 这是我的节点应用程序 var io = require('socket.io').listen(8080); // this has to be here, otherwise the client tries to // send events to example.com/socket.io instead of example.com/nodejs/socket.io io.set( 'resource', '/nodejs/socket.io' ); io.sockets.on('connection', function (socket) { socket.emit('bar', { one: '1'}); socket.on('foo', function( data ) { console.log( data ); }); }); 这是我的客户端文件的样子 <!DOCTYPE html> <html> […]

反向代理是否使node.js安全?

我想将node.js放在云中,以获取具有敏感公司信息的应用程序。 恐怕node.js不像一些较旧的服务器那么安全,因为它并没有被大量使用。 我看到有人build议使用反向代理来使它更安全。 我了解它是如何安全的,因为它不直接暴露于世界。 但是,xss和其他攻击仍然是可能的。 仅从安全的angular度来看,任何人都认为node.js与旧的服务器是一致的? 关于“如何说服老板+公司安全团队”的提示?