簡體   English   中英

使用http-proxy對新端口的代理請求

[英]Proxy request to new port with http-proxy

我使用這個代碼我想創建代理,所有應用程序調用端口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時,我仍然收到相同的消息,為什么? 好嗎?

  • 我應該在第二個創建服務器中生產什么? 我的意思是代替

     res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('request successfully proxied to: ' + req.url + '\\n' + JSON.stringify(req.headers, true, 2)); res.end(); 
  • res.end()是否也應該存在?

我使用https://github.com/nodejitsu/node-http-proxy中的代碼

當我將端口(在瀏覽器中)更改為3002時,我仍然收到相同的消息,為什么? 好嗎?

那很好。 您設置了一個偵聽端口3002的“真實”服務器。如果您嘗試直接訪問它,則沒有理由不這樣做,並且您的請求事件處理程序(在該服務器上)所做的是返回字符串“請求成功代理到:“+網址。 這里沒什么特別的:-)

我應該在第二個創建服務器中生產什么?
res.end()是否也應該存在

你應該放一些真實有用的服務器邏輯。 您沒有描述您的服務器的功能,我認為這與您所做的問題無關。 res.end()是否應該存在是服務器的功能。 再說一次,沒有什么可看的:-)

如果你想看到一個真實的風景,試着在listen功能中添加一個主機名:

}).listen(3002,'127.0.0.1');

然后嘗試從其他計算機(或與同一台計算機,但使用您的網絡IP)連接。 如果您的網絡IP是192.12.13.14,請嘗試:

http://192.12.13.14:3002 

http://192.12.13.14:3000

看到差異

暫無
暫無

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

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