node-http-proxy

node-http-proxy 是一个可编程的,支持 websocket 的 HTTP 代理库。它适合实现反向代理和负载均衡器的组件。

安装

npm install http-proxy --save

核心概念

const httpProxy = require('http-proxy')

const proxy = httpProxy.createProxyServer(options)

proxy 是一个对象,其中包含四个方法

  • web: req, res, [options] 用来代理常规的 HTTP(s) 请求
  • ws: req, socket, head, [options] 用来代理 websocket 请求
  • listen: port 用来监听端口,并启动 webserver
  • close: [callback] 用来关闭端口监听和 webserver

如果没有调用 proxy.listen 方法的话,上面的操作并不会创建一个 webserver。

// 代理请求
http.createServer((req, res) => {
  
  proxy.web(req, res, { target: 'https://xxx.com' })
  
  proxy.on('error', err => {})
  // 也可以把错误处理函数作为 web 方法的第四个参数传递
})

当请求被代理时,它遵循两个不同的管道,这两个管道可以对 req 和 res 对象做一些转换。第一个管道(incoming)负责创建和操作将客户端连接到目标的流。第二个管道(outgoing)负责创建和操作流,该流从目标将数据返回到客户端。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注