在实际工程开发中,会有前后端分离的需求。
为了平滑的完成前端请求到后端各个独立服务,需要一个中间件实现请求转发的功能,利用Nginx可以实现,在这里,使用nodejs实现一个反向代理服务器。
实际前端项目背景是node+express做前端路由,提供页面的基础渲染和请求转发。
后端使用java springboot开发多个微服务(这里没有使用spring cloud Eureka 做服务管理与API协调),每个服务的IP一致,端口不一致。
实验环境:nodejs+express端口是3001,启动一个java服务,端口是8088,在java中添加了一个filter,用来输出收到的请求地址,使用postman左右客户端发起请求
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) req;
System.out.println("请求地址是"+((HttpServletRequest) req).getRequestURI());
首先在原express工程下安装“http-proxy-middleware”中间件
npm install --save-dev http-proxy-middleware
在express的app.js中进行引用
var proxy = require('http-proxy-middleware');
根据实际使用情况,进行代理配置
1、转发所有http请求

本文介绍了如何使用Nodejs和Express实现反向代理,用于在前后端分离的项目中转发前端请求到多个后端微服务。通过安装并配置'http-proxy-middleware'中间件,实现了对所有请求、指定路径请求的转发以及路由重定向。在实验环境中,Nodejs应用作为前端代理,Java Springboot应用作为后端服务,通过调整代理规则来匹配不同的后端端口,确保请求能够正确到达相应服务。
最低0.47元/天 解锁文章
691

被折叠的 条评论
为什么被折叠?



