Tag: 反向代理

如何在Express中代理外部站点

我正在试图使一个代理服务器,加载我的域名下的外部网站。 我的目标是让人们访问myDomain.com/anyDomain.com,并能够使用anyDomain.com添加function(注入JS)。 我尝试使用请求包获取该网站的HTML,然后将其发送到快速响应,但这种方法弄乱了网站(相对path,缺lessCSS,错误的JS请求等)。 有没有任何节点包完成这个任务? 如果不是,我该怎么做呢? 谢谢!

使用SSL的基本Redbird反向代理在Ubuntu Server 14.04上不起作用

这工作,通过去https://sensorypanel.nettesting: var fs = require('fs'); var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80, '0.0.0.0'); var https = require('https'); var options = { key: fs.readFileSync('certs/sensorypanel.net/sensorypanel_net-key.pem'), cert: fs.readFileSync('certs/sensorypanel.net/sensorypanel_net.crt'), ca: fs.readFileSync('certs/ca_bundle.crt') }; https.createServer(options, function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello SSL World\n'); }).listen(443, '0.0.0.0'); 但是使用Redbird作为反向代理,这不起作用: var redbird = require('redbird'), http = require('http'); var […]

无法在node.js上设置代理

我有端口5550上的node.js 4.1.1和express.js 4.8.5。端口8080上也有Geoserver 2.8.0。两台服务器都在同一台笔记本电脑上。 节点上的应用程序想要访问来自Geoserver的一些地图数据,这些是关于Openlayers的细节 source: new ol.source.TileWMS({ url: 'http://localhost:8080/geoserver/mymap/wms?', crossOrigin: 'anonymous', // I also tried crossOrigin: 'localhost:8080/' and crossOrigin: 'localhost:5550/' but nothing params: {'LAYERS': 'mymap:layer, mymap:anotherLayer, FORMAT': 'image/png' ,'CRS': 'EPSG:3857'}, serverType: 'geoserver' 在Geoserver上设置CORS或代理是不可能的,因为技术问题(旧的Jetty核心,在旧的Jetty版本的野生的,不可用的jars上的hack-ish解决scheme)。 为了避免CORS和Access Control Allow Origins错误我想在节点上设置一个代理。 我只是想使用节点,因为它更容易设置。 根据这个和以前的问题,我必须设置一个反向代理,所以 我不在客户端上进行代理configuration Geoserver通过一个节点反向代理服务器,看起来像他们有相同的起源(=没有更多的CORS问题) 客户端想要访问Geoserver,但不知道它通过节点 我想我的概念是正确的,但我不知道如何实现这一点。 我select了http-proxy-middleware来做到这一点。 我在我的app.js上添加了 var proxyMiddleware = require('http-proxy-middleware'); var proxy = proxyMiddleware('http://localhost:8080/geoserver', { […]

节点http-proxy:将stream量转发到外部https站点 – 崩溃

我想从我的前端wepp应用程序将REST请求传输到外部Jira服务器上的API。 为此,我正在使用节点http-proxy ,这对于Jira服务器来说是可以使用的。 但是现在我想为https创build一个单独的服务器。 所以使这个例子改变我现在有这样的: var path = require('path'), fs = require('fs'), httpProxy = require('http-proxy'), certFolder = '/my/cert/folder'; // // Create the HTTPS proxy server listening on port 8002 // httpProxy.createServer({ //(placeholder address) target: { host: 'https://ext.jiraserver.com', port: 443 }, // letsencrypt cert ssl: { key: fs.readFileSync(path.join(certFolder, 'privkey.pem'), 'utf8'), cert: fs.readFileSync(path.join(certFolder, 'fullchain.pem'), 'utf8') }, secure: […]

在Nodejs中实现反向代理

我正在尝试使用nodejs创build一个反向代理,我可以将不同的组合映射到各种网站。 以下是我第一次尝试的代码: var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { proxy.proxyRequest(req, res, { host: 'www.yahoo.com', port: 80 }); }).listen(8000); 以及良好的工作,但如果我有一整套的组合。 我不知道如何去做。 我的第二次尝试 var http = require('http'), httpProxy = require('http-proxy'); var mapping = { hostnameOnly: true , router : { '127.0.0.1:8000' : 'www.google.com' , '127.0.0.1:8001' : 'www.yahoo.com' } } var proxyserver = […]

devise实时Web应用程序(Node.js和socket.io)

我想问一些好的做法。 我有一个Node.js(Express)Web服务器和socket.io推送服务器(以防技术问题)。 我可以把他们两个变成一个应用程序,但我希望他们分开(如果需要,他们可以相互沟通)。 有两个原因可以做到这一点: 这将是更容易pipe理,debugging和开发应用程序; 扩展应用程序会容易得多。 如果需要,我可以只添加推送服务器或Web服务器的另一个实例; 这至less是我相信的。 唯一的问题是,当客户端连接到独立的socket.io服务器,那么它不会发送cookie(不同的端口,跨域策略)。 我提出的解决方法是在前面放置一个反向代理(用Node.js编写),并检查我们正在处理的请求是什么types,并将其发送到Web服务器或推送服务器。 太棒了,现在我们在networking服务器和推送服务器上都有cookies。 反向代理可以是负载均衡器,这是额外的好处。 这对我来说是个好主意。 你对这个devise有什么看法? 也许任何其他解决方法cookie的问题?

是否有可能在不同的networking中创build点对点连接?

我想创build2个nodejs客户端之间的点对点连接。 使用websocket(dnode) 这里是极限: nodejs客户端运行在两台不同的networking上。 它们在NAT或防火墙后面没有静态IP(192.168.1.100 && 192.168.2.200) 没有权限更改路由器的映射。 在公共networking中只有静态Web服务器。 (可以通过人工更改文件) 可以在PC上安装应用程序(win) 可能吗? 谢谢

在nodejs中转发代理

我用nodejs做了一个小的转发代理,并把它放在appfog中。 它设置了我的浏览器的代理后在本地工作,但是当我尝试使用托pipe在appfog中的一个说:* Errore 130(net :: ERR_PROXY_CONNECTION_FAILED):Connessione al服务器代理非riuscita。*这是我的代码: var http = require('http'); http.createServer(function(request, response) { http.get(request.url, function(res) { console.log("Got response: " + res.statusCode); res.on('data', function(d) { response.write(d); }); res.on('end', function() { response.end(); }); }).on('error', function(e) { console.log("Got error: " + e.message); }); }).listen(8080); 我错过了什么? 你的代码正在工作,但一旦我已经尝试使用它像这样: var port = process.env.VCAP_APP_PORT || 8080; var http = require('http'); var […]

nodejs节点代理,使用路由表并修改响应

我们有一个简单的nodejs过程来testing/开发我们实验室的工作。 我们使用节点代理来设置一个反向代理,它允许我们使用http(即http – > https)与https服务器进行通信。 作为这个的一部分,我们有一些修改响应的代码。 这是我们正在做的事情: var http = require('http'), httpProxy = require('http-proxy'), endserver = 'server.local', endport = 8443; var proxy = new httpProxy.HttpProxy({ target: { https: true, host: endserver, port: endport } }); http.createServer(function (req, res) { //our code for modifying response is here… proxy.proxyRequest(req, res); }).listen(8001); 我想build立一个节点代理路由表,就像这里的例子,所以我可以根据请求中的主机名将请求转发到不同的https服务器上(我将在我们的dns上设置多个主机名,指向运行相同的服务器nodejs代理)。 我怎样才能有一个节点代理路由表,并修改响应? (我对node.js相当新,但不是JavaScript)

与节点的代理http请求

我在一个域上有一个nodeJs前端,另一个域上有一个后端服务器。 我希望能够从前面到后面执行Ajax请求。 所以,我打算为此使用反向代理,以绕过相同的源策略限制。 我的后台Rest服务器将通过基本身份validation或OAuth进行保护。 我想知道,如果我使用node-http-proxy,如果可以在代理之前发送http请求中的授权头,以及如何。 非常感谢。