簡體   English   中英

在Node.js中實現反向代理

[英]Implementing Reverse Proxy in Nodejs

我正在嘗試使用nodejs創建一個反向代理,在這里我可以映射不同的組合來指向各種網站。

以下是我的首次嘗試代碼:

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 = httpProxy.createServer(mapping).listen (80) ;

這甚至行不通,我不知道為什么。

好吧,我試圖創建的只是一個簡單的應用程序,我在其中映射到域並獲取那些頁面。 我仍然對Node.js感到困惑,所以如果問題聽起來很荒謬,我深表歉意。

您的第二次嘗試失敗,因為hostnameOnly規范不接受路由路徑中的端口。 node-http-proxy docs

var options = {
  hostnameOnly: true,
  router: {
    'foo.com': '127.0.0.1:8001',
    'bar.com': '127.0.0.1:8002'
  }
}

不過,您在正確的軌道上。 這里 如果省略hostnameOnly參數,它應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM