[英]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()
是否也應該存在?
當我將端口(在瀏覽器中)更改為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.