当前位置: 首页 > news >正文

学校网站建设策划管理培训公司

学校网站建设策划,管理培训公司,思科网站建设配置站点dns服务,什么网站可以做美食需求说明 软件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…

 需求说明

软件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资源等只能通过有限个代理地址访问),不考虑SSO。

软件质量需求:满足基本的性能要求:页面响应耗时:3s内(页面本身不走代理就慢的情况除外)

约束条件:内部web资源权限控制的原因,可申请的web资源数量有限制,成百上千的web应用地址只能通过有限个(10个以内)代理地址访问

原型界面【Axuare】

原型界面视频讲解

系统URL整合系列视频二(界面原型)【axure原型界面】_系统url整合系列视频二(界面原型)-配套文档-CSDN博客

原型设计稿下载

https://download.csdn.net/download/jjk_02027/90335900

前端代码实现【d3js】

前端代码视频讲解

系统URL整合系列视频三(前端代码实现) 【d3js版本】-CSDN博客

前端代码下载

https://download.csdn.net/download/jjk_02027/90335919

后端技术实现【nodejs实现】

在Node.js中,根据不同的条件将请求转发到不同的后端服务可以通过多种方式实现,其中最常用的是使用中间件。这里我将介绍几种常见的方法:

1. 使用 express 框架

假设你正在使用 express 框架,你可以使用 express-http-proxy 或 http-proxy-middleware 包来实现条件转发。

使用 http-proxy-middleware

首先,你需要安装这个包:

npm install http-proxy-middleware

然后,创建一个新的JavaScript文件,例如app.js,并设置你的Express服务器,你可以创建一个代理中间件并根据条件转发请求:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');const app = express();// 定义一个条件路由
app.use((req, res, next) => {if (req.headers['x-api-key'] === 'secret123') {// 使用代理转发到特定的后端服务return createProxyMiddleware({target: 'http://backend1.example.com', // 后端1的URLchangeOrigin: true, // 更改请求头中的Host})(req, res, next);} else {// 使用另一个代理转发到另一个后端服务return createProxyMiddleware({target: 'http://backend2.example.com', // 后端2的URLchangeOrigin: true, // 更改请求头中的Host})(req, res, next);}
});app.listen(3000, () => {console.log('Server is running on port 3000');
});

2. 使用 axios 或 node-fetch 手动转发请求

如果你不希望使用代理中间件,也可以使用 axios 或 node-fetch 来手动转发请求。

使用 axios

首先,安装 axios

npm install axios

然后,编写代码来根据条件转发请求:

const express = require('express');
const axios = require('axios');const app = express();app.use(async (req, res) => {let targetUrl;if (req.headers['x-api-key'] === 'secret123') {targetUrl = 'http://backend1.example.com'; // 后端1的URL} else {targetUrl = 'http://backend2.example.com'; // 后端2的URL}try {const response = await axios({ ...req, url: targetUrl }); // 使用axios转发请求,保持原有的请求方法、头部等属性res.status(response.status).send(response.data); // 发送响应给客户端} catch (error) {res.status(error.response ? error.response.status : 500).send(error.message); // 处理错误并返回给客户端}
});app.listen(3000, () => {console.log('Server is running on port 3000');
});

3. 直接使用原生 http 模块(不推荐,除非有特殊需求)

虽然不推荐,但你也可以使用 Node.js 的原生 http 或 https 模块来手动转发请求:

const http = require('http');
const express = require('express');
const app = express();app.use((req, res) => {let targetUrl;if (req.headers['x-api-key'] === 'secret123') {targetUrl = 'http://backend1.example.com'; // 后端1的URL} else {targetUrl = 'http://backend2.example.com'; // 后端2的URL}const options = { ...req, url: targetUrl }; // 注意这里的url应为完整的URL或使用其他方式指定目标URL和端口等参数,此处仅为示意。实际使用时需调整。通常需要使用`url`模块来处理完整的URL。const proxyReq = http.request(options, proxyRes => { // 使用原生http模块创建代理请求。注意这里的options需要正确设置。通常需要额外处理headers等。此处仅为示意。实际使用时需调整。通常需要额外处理headers等。此处仅为示意。实际使用时需调整。通常需要额外处理headers等。此处仅为示意

 4、运行你的应用

保存你的更改并运行你的Express应用

node app.js

现在,你的Express应用会根据请求的路径将请求转发到不同的后端服务。例如,所有发送到['x-api-key'] === 'secret123'的请求将被转发到http://backend1.example.com,而所有其他的请求将被转发到http://backend2.example.com

附加:动态决定目标地址

如果你需要根据请求的某些动态条件(如头部信息、查询参数等)来决定目标地址,你可以在代理中间件中使用回调函数来动态设置target属性:

附件一:nodejs官方网站

Node.js — 在任何地方运行 JavaScript

Node.js · GitHub

http://www.dtcms.com/a/460446.html

相关文章:

  • 水墨 网站源码小红书seo排名规则
  • 做网站接电话一般要会什么关注公众号功能开发
  • wordpress文章预览北京seo课程
  • 广州网站建设南宁丽江网站开发
  • 北京品牌建设网站风铃网站具体是做那方面的
  • 公司做网站有用吗网站改版降权多久恢复
  • 企业宣传册免费模板网站安徽省建设项目 备案网站
  • 网站建设主要营销内客网站开发技术概述
  • 网站建设电子网站怎么自动加水印
  • 如何创建个人的网站长沙网站建设哪家强
  • 网站站长wordpress不能上传图片
  • 公司网站欢迎语建企业网站教程
  • 深圳电梯广告制作公司网站企业网站开发方案
  • 企业建设网站需要服务器吗万全网站建设
  • 网页设计与网站制作视频教程集团网站信息建设情况
  • 众车网是哪家公司网站建设网站需要哪些备案
  • 网站建设合同验收西安seo顾问公司
  • 做网站需要先申请域名佛山网站建设费用
  • 如何免费注册网站域名找人做网站防止别人用
  • 免费做网站推广的软件南京建设银行网站首页
  • 如何建立网站快捷链接做爰网站下载
  • 购物商城html网站代码做网站工作怀孕
  • 惠州网站建设哪里有中文网站模板下载免费
  • 宝塔软件怎么做网站大数据查询官网
  • 阳江网站建设wordpress主题更新教程
  • 毕业设计做网站用什么软件网站建设费大概多少钱
  • 长沙正规制作网站公司广州网站开发怎么做
  • 济南建网站访问量大的网站
  • 简单好看个人主页网站模板做坏事网站
  • 装饰公司营销网站模板电子商务网站建设的规划