使用node.js實現反向代理


一. 反向代理的應用場景

1. 靜態資源與動態資源分離 e.g. 圖片服務器

2. AJAX跨域訪問

3. 搭建統一服務網關接口

二. 使用node.js實現反向代理

1. 安裝http-proxy模塊

npm install http-proxy

2. 使用http-proxy模塊啟動代理服務器

 1 // 導入http模塊
 2 var http = require('http');
 3 // 導入http-proxy模塊
 4 var httpProxy = require('http-proxy');
 5 
 6 // 提供服務的端口號
 7 var PORT = 1234;
 8 
 9 // 創建反向代理服務
10 var proxy = httpProxy.createProxyServer();
11 // 監聽錯誤事件
12 proxy.on('error', function (err, req, res) {
13     // 輸出空白響應數據
14     res.write('error!');
15     res.end();
16 });
17 
18 // 創建服務
19 var app = http.createServer(function (req, res) {
20     // 執行反向代理
21     proxy.web(req, res, {
22         // 目標地址
23         target: 'http://localhost:8080'
24     });
25 });
26 
27 // 啟動服務
28 app.listen(PORT, function () {
29     console.log('server is running at %d', PORT);
30 });

總結:創建了一個提供反向代理功能的服務器,該服務器啟動后監聽1234端口,接收到請求之后,將請求轉發至目標地址(target)

三個步驟:

1) 創建反向代理服務

2) 創建服務器,提供反向代理服務

3) 啟動服務器,監聽指定端口

3. 效果圖

訪問localhost:1234之后,反向代理服務器會將請求轉發至localhost:8080

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM