前端代理的方式总结

利用webpack,vite 等工具配置代理

webapck

以vue项目为例
vue.config.js

module.exports = {
    devServer: {
        port: '8081', // 设置端口号
        proxy: {
            '/api': {
              target: 'http://ahbcht.com', //API服务器的地址
              changeOrigin: true, // 是否跨域,虚拟的站点需要更管origin
              pathRewrite: {
                '^/api': '',
              }
            }
        },
    }
}

vite

以vue项目为例
vite.config.ts

import { defineConfig } from "vite";
export default defineConfig({
  server: {
    proxy: {
      "/api": {
        target: "http://www.lingchen.kim:8888",
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
    },
  },
});

nginx

http {
	server {
	  listen 8081; 
	  server_name localhost 127.0.0.1 10.20.11.153;  # 站点域名

	  location /api {
        proxy_pass http://10.20.11.153:1026;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
	  }
	}
}

node

以express 和相关插件 express-http-proxy 为例

  1. 安装依赖
yarn add express-http-proxy
  1. 拦截相关代码
var proxy = require("express-http-proxy");

//配置项目多个接口代理,第一个匹配成功后,就不会继续执行
const proxyList = [
  {
    url: "/api",
    target: "http://139.155.253.86:5000",
  },
  {
    url: "/local",
    target: "http://shenji.zlketang.com",
  },
];

function proxyInit(app) {
  proxyList.forEach(({ url, target }) => {
    // 自动将头删除,设置改写也没用
    app.use(
      url,
      proxy(target, {
        limit: "5mb", // 限制大小
        timeout: 5000, // 设置超时
        // https: true, // 开启https
      })
    );
  });
}

module.exports = proxyInit;
  1. 全局导入
// 代理
const proxy = require("./proxy/index");
proxy(app);

其他方式

服务器请求转发

mock

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值