跳至主要內容

使用node进行反向代理

bluestudyhard小于 1 分钟

先在这里丢个代码

const express = require("express");
const { createProxyMiddleware } = require("http-proxy-middleware");
const app = express();

app.use(
  "/*",
  createProxyMiddleware({
    target: "https://api.openai.com/", // 无法代理以/api开头的请求
    changeOrigin: true,
    onProxyRes: function (proxyRes, req, res) {
      proxyRes.headers["Access-Control-Allow-Origin"] = "*";
    },
    pathRewrite: (path, req) => {
      // 将请求路径中的 '/api' 替换为/*
      return path.replace("/api", "");
    },
    onProxyReq: function (proxyReq, req, res) {
      // 删除 X-Forwarded-For 和 X-Real-IP 头信息 保证不会返回原始客户端的IP
      proxyReq.removeHeader("X-Forwarded-For");
      proxyReq.removeHeader("X-Real-IP");
    },
    onProxyRes: function (proxyRes, req, res) {
      // 删除敏感头信息
      delete proxyRes.headers["server"];
      delete proxyRes.headers["x-powered-by"];
    },
  })
);
module.exports = app;