node 反向代理

1. 首先安装express、http-proxy-middleware和connect-timeout(此模块用于处理超时):

    npm install --save-dev express http-proxy-middleware connect-timeout

2. 新建一个proxy-server.js文件。

const express = require('express');
const timeout = require('connect-timeout');
const proxy = require('http-proxy-middleware');
const app = express();
// 这里从环境变量读取配置,方便命令行启动
// HOST 指目标地址
// PORT 服务端口

const {
    HOST = 'http://xxx.xxx.xxx.xxx:5000', PORT = '3300'
} = process.env;

// 超时时间
const TIME_OUT = 30 * 1e3;

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
});

// 设置端口
app.set('port', PORT);

// 设置超时 返回超时响应
app.use(timeout(TIME_OUT));
app.use((req, res, next) => {
    if (!req.timedout) next();
});

// 静态页面
// 这里一般设置你的静态资源路径
app.use('/', express.static('static'));

// 反向代理(这里把需要进行反代的路径配置到这里即可)
// eg:将/api/test 代理到 ${HOST}/api/test
app.use(proxy('/js/get_gate_record', {
    target: HOST
}));


// 监听端口
app.listen(app.get('port'), () => {
    console.log(`server running @${app.get('port')}`);
});

3. 启动

node proxy-server.js
//此时则需要在http://localhost:3301进行访问。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值