怎么用node做个中转?
发布于 8 年前 作者 suxiaoxin 5830 次浏览 来自 问答

比如访问127.0.0.1:8080/url,实际上访问的是 www.abc.com/api/url

使用流,管道实现么?

7 回复

可以直接把tcp流导过去,像这样

#!/usr/bin/env node

const net = require('net')
const stream = require('stream')

const transform = stream.Transform({
  transform(chunk, encoding, callback) {
    callback(null, chunk.toString().replace('localhost:10086', 'api.douban.com'))
  }
})

const server = net.createServer((socket) => {
  const client = net.connect(80, 'api.douban.com')
  socket.pipe(transform).pipe(client).pipe(socket)
})

server.listen(10086)

可以访问http://localhost:10086/v2/book/5402682

@eggggger 大神啊! 请问学习这方面知识看哪些书?还有我现在http可以用这个方法

如果用http代理https站点,怎么弄呢?

express-http-proxy proxy(url, { forwardPath: function (req, res) { return newPath; } })(req, res, next);

@bsdragon 代理https不行啊,有什么办法吗

@suxiaoxin 这些是http协议的相关知识 可以看看《HTTP权威指南》

为什么不用nginx…

回到顶部