怎么用node做个中转?
比如访问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…