简介
basic-http-proxy 是一个基于 Node.js 的 HTTP 代理服务,可以将客户端的 HTTP 请求转发到指定的主机和端口。它支持安全的 HTTPS 连接,可以自定义请求头和响应头,还可以通过添加中间件对请求和响应进行处理。
安装
使用 npm 安装 basic-http-proxy:
npm install basic-http-proxy
基本用法
在项目中引入 basic-http-proxy:
const httpProxy = require('basic-http-proxy');
启动一个代理服务:
const server = httpProxy.createProxyServer({target: 'http://localhost:3000'}); server.listen(8000, () => { console.log('Proxy server is listening on port 8000'); });
以上代码会创建一个代理服务,将客户端请求转发到本地的 http://localhost:3000。
HTTPS 支持
如果需要支持 HTTPS 连接,只需要在创建代理服务时传入一个 https 对象即可:
-- -------------------- ---- ------- ----- ----- - ----------------- ----- -- - -------------- ----- ------- - - ---- ------------------------------------ ----- ------------------------------------ -- ----- ------ - ----------------------------- ------- ---------------------- ------ ------------------ -------- - ----- ------------- -- ---- ------- ---
以上代码中的 options 对象里是 SSL/TLS 证书配置信息,可以使用自己的证书文件替换。
请求和响应处理
basic-http-proxy 支持添加中间件,可以方便地对请求和响应进行处理。例如,我们可以在代理请求时添加自定义的请求头:
const server = httpProxy.createProxyServer({ target: 'http://localhost:3000', onProxyReq: (proxyReq, req, res) => { proxyReq.setHeader('X-Custom-Header', 'Hello World'); } });
在代理响应时添加自定义的响应头:
const server = httpProxy.createProxyServer({ target: 'http://localhost:3000', onProxyRes: (proxyRes, req, res) => { proxyRes.headers['X-Custom-Header'] = 'Hello World'; } });
示例代码
以下是一个完整的示例代码,启动一个代理服务,将客户端请求转发到 http://localhost:3000,并添加自定义的请求头和响应头:
-- -------------------- ---- ------- ----- --------- - ---------------------------- ----- ------ - ----------------------------- ------- ------------------------ ----------- ---------- ---- ---- -- - ------------------------------------- ------ -------- -- ----------- ---------- ---- ---- -- - ----------------------------------- - ------ ------- - --- ------------------- -- -- - ------------------ ------ -- --------- -- ---- ------- ---
以上代码只是 basic-http-proxy 的基本用法,更多功能和用法可以参考官方文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600558d281e8991b448d61fa