最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js使用 http-proxy 創(chuàng)建代理服務(wù)器操作示例

 更新時間:2020年02月10日 12:52:33   作者:懷素真  
這篇文章主要介紹了node.js使用 http-proxy 創(chuàng)建代理服務(wù)器,結(jié)合實例形式分析了node.js使用 http-proxy 創(chuàng)建代理服務(wù)器原理、具體步驟與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了node.js使用 http-proxy 創(chuàng)建代理服務(wù)器操作。分享給大家供大家參考,具體如下:

代理,也稱網(wǎng)絡(luò)代理,是一種特殊網(wǎng)絡(luò)服務(wù),允許一個終端通過代理服務(wù)與另一個終端進(jìn)行非直接的連接,這樣利于安全和防止被攻擊。

代理服務(wù)器,就是代理網(wǎng)絡(luò)用戶去獲取網(wǎng)絡(luò)信息,就是信息的中轉(zhuǎn),負(fù)責(zé)轉(zhuǎn)發(fā)。

代理又分 正向代理 和 反向代理:

  • 正向代理:幫助局域網(wǎng)內(nèi)的用戶訪問外面的服務(wù)。
  • 反向代理:幫助外面的用戶訪問局域網(wǎng)內(nèi)部的服務(wù)。

一、安裝 http-proxy

npm install http-proxy --save

二、代理本地服務(wù)

const http = require('http');
const httpProxy = require('http-proxy');
//創(chuàng)建一個代理服務(wù)
const proxy = httpProxy.createProxyServer();
//創(chuàng)建http服務(wù)器并監(jiān)聽8888端口
let server = http.createServer(function (req, res) {
  //將用戶的請求轉(zhuǎn)發(fā)到本地9999端口上
  proxy.web(req, res, {
    target: 'http://localhost:9999'
  });
  //監(jiān)聽代理服務(wù)錯誤
  proxy.on('error', function (err) {
    console.log(err);
  });
});
server.listen(8888, '0.0.0.0');

9999端口服務(wù)代碼:

const http = require('http');
http.createServer(function (req, res) {
  res.end('port : 9999');
}).listen(9999, '0.0.0.0');

當(dāng)們在本地訪問 8888 端口時,proxy 會幫我們把請求代理到 9999 端口服務(wù),然后返回數(shù)據(jù)。

二、通過host實現(xiàn)多個虛擬主機(jī),共用一個端口

const http = require('http');
const httpProxy = require('http-proxy');
//創(chuàng)建一個代理服務(wù)
const proxy = httpProxy.createProxyServer();
//虛擬主機(jī)
const hosts = {
  'www.a.me': 'http://localhost:8888',
  'www.b.me': 'http://localhost:9999',
};
//創(chuàng)建http服務(wù)器并監(jiān)聽80端口
let server = http.createServer(function (req, res) {
  //獲取主機(jī)名
  let host = req.headers['host'];
  host = host.split(':')[0];
  //根據(jù)主機(jī)名,找到要代理的服務(wù)
  let target = hosts[host];
  if (target) {
    proxy.web(req, res, {
      target: target
    });
    proxy.on('error', function (err) {
      console.log(err);
    });
  } else {
    res.end('end');
  }
});
server.listen(80, '0.0.0.0');

8888.js服務(wù)代碼:

const http = require('http');
http.createServer(function (req, res) {
  res.end('port : 8888');
}).listen(8888, '0.0.0.0');

9999.js服務(wù)代碼:

const http = require('http');
http.createServer(function (req, res) {
  res.end('port : 9999');
}).listen(9999, '0.0.0.0');

注意 www.a.me www.b.me 這兩個域名需加入 C:\Windows\System32\drivers\etc\hosts 文件中。

127.0.0.1 www.a.me
127.0.0.1 www.b.me

當(dāng)我們訪問 www.a.me 或 www.b.me 時,就會自動幫我們代理到指定端口的服務(wù)上去。

希望本文所述對大家node.js程序設(shè)計有所幫助。

相關(guān)文章

  • 手把手教你更優(yōu)雅的修改node_modules里的代碼

    手把手教你更優(yōu)雅的修改node_modules里的代碼

    這篇文章主要給大家介紹了關(guān)于如何更優(yōu)雅的修改node_modules里的代碼的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-02-02
  • node.js適合游戲后臺開發(fā)嗎?

    node.js適合游戲后臺開發(fā)嗎?

    這篇文章主要介紹了node.js適合游戲后臺開發(fā)嗎?node.js是不是能代替C++開發(fā)游戲后臺呢?看完本文我想你會有一定的了解了,需要的朋友可以參考下
    2014-09-09
  • node.js?中的require用法和import的區(qū)別解析

    node.js?中的require用法和import的區(qū)別解析

    在Node.js中,require是一個內(nèi)置的函數(shù),用于在當(dāng)前模塊中加載和緩存其他模塊,這篇文章給大家介紹node.js?中的require用法和import的區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • node.js操作mysql(增刪改查)

    node.js操作mysql(增刪改查)

    本文給大家分享的是使用node.js實現(xiàn)對mysql數(shù)據(jù)庫的增刪改查操作,有需要的小伙伴可以參考下,希望對大家學(xué)習(xí)node有所幫助。
    2015-07-07
  • windows系統(tǒng)下安裝yarn的詳細(xì)教程

    windows系統(tǒng)下安裝yarn的詳細(xì)教程

    yarn是一個新的JS包管理工具,它的出現(xiàn)是為了彌補(bǔ)npm的一些缺陷,下面這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)下安裝yarn的詳細(xì)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • nodejs遞歸文件夾獲取所有文件路徑實例

    nodejs遞歸文件夾獲取所有文件路徑實例

    這篇文章主要為大家介紹了nodejs遞歸文件夾獲取所有文件路徑實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Node.js安裝教程和NPM包管理器使用詳解

    Node.js安裝教程和NPM包管理器使用詳解

    這篇文章主要介紹了Node.js安裝教程和NPM包管理器使用詳解,安裝部分講解了Windows、和MAC OS下的安裝圖解,并介紹了Linux下的源碼安裝方法,最后對NPM包管理器做了詳細(xì)介紹,需要的朋友可以參考下
    2014-08-08
  • node異步使用await和不用await的區(qū)別實例分析

    node異步使用await和不用await的區(qū)別實例分析

    這篇文章主要介紹了node異步使用await和不用await的區(qū)別,結(jié)合實例形式分析了node.js異步使用await和不用await的實例中,同步與異步執(zhí)行的區(qū)別,需要的朋友可以參考下
    2023-06-06
  • 輕松創(chuàng)建nodejs服務(wù)器(2):nodejs服務(wù)器的構(gòu)成分析

    輕松創(chuàng)建nodejs服務(wù)器(2):nodejs服務(wù)器的構(gòu)成分析

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(2):nodejs服務(wù)器的構(gòu)成分析,本文是對第一節(jié)中簡單服務(wù)器的代碼進(jìn)行分析總結(jié),需要的朋友可以參考下
    2014-12-12
  • npm使用淘寶鏡像及切換回官方源的操作命令

    npm使用淘寶鏡像及切換回官方源的操作命令

    這篇文章主要給大家介紹了npm使用淘寶鏡像及切換回官方源的操作命令,文中給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02

最新評論

汉寿县| 南昌县| 富宁县| 图们市| 香格里拉县| 吉水县| 丹巴县| 华宁县| 云阳县| 九江县| 青铜峡市| 开江县| 邹平县| 北京市| 南川市| 红原县| 正安县| 渝中区| 秭归县| 新化县| 宿州市| 湘阴县| 阳新县| 丰镇市| 福海县| 长兴县| 乳源| 石嘴山市| 临西县| 灵山县| 陇西县| 依兰县| 南乐县| 开阳县| 通榆县| 峡江县| 理塘县| 宜君县| 恭城| 长阳| 定结县|