正向代理 && 反向代理 ~ Proxy

正向代理一般是客户端设置的,类似于跳板机,代理访问外部资源

  • 访问原来无法访问的资源
  • 做缓存,加速访问
  • 对客户端访问授权,上网进行认证
  • 记录用户访问记录,对外隐藏用户信息

反向代理就是服务端设置的, webpack是反向的

  • 可以保证内网的安全,使用反向代理,提供WAF功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,web服务是内网
  • 负载均衡

正向代理

访问一个服务器,这个服务器可以帮我们访问另一个服务

安装 http-proxy 模块

webpack 用的是 webpack-dev-server http-proxy-middlware

server.js

//写个服务
let http = require('http');

http.createServer(function (req,res) {
  res.end('google');
}).listen(3000);
复制代码

proxy.js

//代理服务
let httpProxy = require('http-proxy');
let proxy = httpProxy.createProxyServer();
let http = require('http');
http.createServer(function (req,res) {
  proxy.web(req,res,{
    target:'http://localhost:3000'
  })
}).listen(8081);

复制代码

test: 访问localhost:8080

反向代理

类似于虚拟主机 典型的有cdn 将内容分发到各服务器,访问的是代理服务器,用到了反响代理

应用假设想在一个电脑上挂两个网站

//www.zdl1.cn => content1 3000端口 //www.zdl2.cn => content2 4000端口

3000.js

//写个服务
let http = require('http');

http.createServer(function (req,res) {
  res.end('3000');
}).listen(3000);
复制代码

4000.js

//写个服务
let http = require('http');

http.createServer(function (req,res) {
  res.end('4000');
}).listen(4000);
复制代码

在自己电脑上找windows/systerm32/drivers/etc/hosts文件,(mac conmand + shift + g 输入/private/etc/搜索直接改)

proxy.js

let map = {
    'www.zdl1.cn' : 'http://127.0.0.1:3000',
    'www.zdl2.cn' : 'http://127.0.0.1:4000'
}

let http = require('http');
let httpProxy = require('http-proxy');

let proxy = httpProxy.createProxyServer();
let server = http.createServer(function (req,res) {
    let host = req.headers['host'];
    host = req.headers['host'].split(':')[0]
    console.log(host);
    proxy.web(req,res,{
        target: map[host]
    })
})
server.listen(80);
复制代码

test: www.zdl1.cn

提示

  • 端口冲突,查看冲突的程序,cmd键入sudo lsof -i:80查看pid 然后kill pid就可以
  • nginx默认80端口,如果想换别的端口,需自行配置
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值