浅聊代理(应用部署)

以前很少接触过项目的上线部署, 我对前后端交互的认知还停留在前端一个请求 对应后端一个API

比如后端提供: /api/backend/categories -GET

前端则通过使用ajax或者axios组件去构建http请求, 发送到:

https://host:port/api/backend/categories -GET

一、单一Server

在此时, 每个前端发送的Http请求只是在路径上存在不同
在这里插入图片描述

二、多Server

那么如果存在多个不同的后端实例, 前端的请求就会五花八门, 本身前端的工作应该只用聚焦在业务代码开发上, 如果换后端实例, 前端的代码还需要再修改, 那么线上部署本身是devops的工作, 导致前端代码修改, 入侵了前段代码, 是不合理的

https://host1:port1/api/backend/categories -GET

https://host2:port2/api/backend/information -GET

在这里插入图片描述

三、引入Gateway

那如何对请求进行管理呢?

如果存在一个实例, 我只管将我的所有资源地址发送到该实例, 他能自己帮我去找到对应的后端Server,那前端就不需要关注具体应该发送到哪个实例了

在这里插入图片描述

四、前端域名的反向代理

这个情况终于解决了前端对接多个后端实例的问题,这里有个新问题:

1、 一般gateway作为网关, 不会做更改, 但是对应我们不同的环境下, 还是需要更改网关的地址,如何才能让前端忽略掉host这个属性?

2、跨域的问题, 一个后端服务在配置了域名之后, 他只能支持一个前端的host进行访问浏览器安全规则强行限制一个域名的服务最多一个其他域名访问, 所以会带来跨域问题(当然你也可以拓展多个Gateway去避免这个问题, 那Gateway就失去了存在的意义)

在这里插入图片描述

答案是:前端自己挂一层代理, 所有的后端请求都指向本server的/apis/路径, 而这个apis的代理, 只需要devops人员在不同环境的前端的域名代理上 反向代理到真实的Gateway地址**即可, 并且这样配置, 我们前端访问的后端服务实际上是自己域名下的api路径, 所以不会有跨域的问题, 这样还能避免跨域导致的问题

    server {listen       443;listen       [::]:443;server_name  _;root         /mnt/project/front-end-page;location /api{proxy_pass http://{Real BackEnd Gateway Address}/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全高效的PostgreSQL数据库迁移解决方案

PostgreSQL数据库是一款高度可扩展的开源数据库系统,支持复杂的查询、事务完整性和多种数据类型,这使得它成为企业中处理大规模和多样化数据需求的理想选择。在很多企业中,PostgreSQL不仅处理大量的交易数据,还支持复杂的数据分析…

Django二转Day03 04

0 cbv执行流程,self问题 path(index/, Myview.as_view()),Myview.as_view() 实例化后返回 变成return Myview.dispatch(request, *args, **kwargs)但是视图函数Myview中没有 dispatch 方法 所以去 父类View中寻找return View.dispatch(request, *args, **kwargs)调用…

Selenium(12):层级定位_通过父元素找到子元素

层级定位 在实际的项目测试中,经常会遇到无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。 层级定位的思想是先定位父对象&#xf…

【腾讯云云上实验室】向量数据库+LangChain+LLM搭建智慧辅导系统实践

目录 一、搭建智慧辅导系统——向量数据库实践指南1.1、创建向量数据库并新建集合1.2、使用 TKE 快速部署 ChatGLM1.3、部署 LangChain PyPDFVectorDB等组件1.4、配置知识库语料1.5、基于 VectorDB LLM 的智能辅导助手 二、LLM时代的次世代引擎——向量数据库2.1、向量数据库L…

FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「内网穿透」

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

ProgrammingError: nan can not be used with MySQL

该错误怎么发生的? 我们先在本地创建测试表: CREATE TABLE users_test (id int NOT NULL AUTO_INCREMENT COMMENT 主键,trade_account varchar(50) DEFAULT NULL COMMENT 交易账号,username varchar(50) DEFAULT NULL,email varchar(100) DEFAULT NULL…

数字系列——数字经济

数字经济是全球经济未来发展方向,正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。都知道数字经确实很重要,但有些人还傻傻搞不懂数字经济到底是什么?小编今天就给大家捋一捋。 什么是数字经济? 数字经…

Glove学习笔记

global vectors for word representation B站学习视频 1、LSA与word2vec 我们用我们的见解,构建一个新的模型,Glove,全局向量的词表示,因为这个模型捕捉到全局预料的统计信息。 LSA:全局矩阵分解word2vec:局部上下文…

AI生成的图片有版权了

我是卢松松,点点上面的头像,欢迎关注我哦! 把发到小红书的AI图片搬运到百家号,然后被起诉了! 长知识了,原来AI生成的图片也有版权了,AI生成图片著作权第一案判了,这绝对是一件划时代事情&…

微信小程序真机调试技巧,解决各种疑难杂症

1.在真机上看log 也许你调试的时候,会使用到真机调试或者预览模式或者体验版模式,这些模式都有可能出现意想不到的bug问题,这时候调试模式就非常非常重要了,特别是给领导看的时候,在领导手机上出现bug了,这…

QT 项目中添加文件夹(分类文件)

为了更方便的整理项目的文件,添加文件夹把文件进行分类。 1.首先在项目文件中创建新的文件夹 2.把需要归类的文件放入新建的文件中 3.右键然后选择add..... 4.运行此程序,会报错因为文件路径改变了,需要在.pro中修改路径 注意事项 文件夹内部…

NSSCTF第14页(2)

[UUCTF 2022 新生赛]ezpop 提示说看看反序列化字符串逃逸 PHP反序列化字符串逃逸_php反序列化逃逸-CSDN博客 php反序列化字符逃逸_php反序列化逃逸_Leekos的博客-CSDN博客 buuctf刷题9 (反序列化逃逸&shtml-SSI远程命令执行&idna与utf-8编码漏洞)_extract($_post);…

码云配置遇到秘钥不正确

你这个就是秘钥没有和git绑定, 需要 git config --global user.name "你的用户名随便写" git config --global user.email "你的邮箱"

DCAMnet网络复现与讲解

距论文阅读完毕已经过了整整一周多。。。终于抽出时间来写这篇辣!~ 论文阅读笔记放这里: 基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)-CSDN博客 为了方便观看,我把结构图也拿过来了。…

软考:2024年软考高级:软件工程

软考:2024年软考高级: 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1…

2023 年 IntelliJ IDEA下载、安装教程,附详细图文

大家好,今天为大家带来的是 2023年 IntelliJ IDEA 下载、安装教程,超详细的图文教程,亲测可用。 文章目录 1 IDEA 下载2 IDEA 安装3 IDEA 使用4 快捷键新手必须掌握:Ctrl:Alt:Shift:Ctrl Alt&a…

机械臂仿真之vrep如添加视觉传感器

基于视觉的机械臂作业任务,如何在vrep中加入视觉传感器,并获取画面?

认证鉴权方案

现在一般使用比较多的认证方式有四种: SessionTokenSSO单点登录OAtuth登录1.Cookie + Session 最常见的就是 Cookie + Session 认证。 Session,是一种有状态的会话管理机制,其目的就是为了解决HTTP无状态请求带来的问题。 当用户登录认证请求通过时,服务端会将用户的信息存…

【排序,直接插入排序 折半插入排序 希尔插入排序】

文章目录 排序排序方法的分类插入排序直接插入排序折半插入排序希尔插入排序 排序 将一组杂乱无章的数据按照一定规律排列起来。将无序序列排成一个有序序列。 排序方法的分类 储存介质: 内部排序:数据量不大,数据在内存,无需…

JeecgBoot低代码开发—Vue3版前端入门教程

JeecgBoot低代码开发—Vue3版前端入门教程 后端接口配置VUE3 必备知识1.vue3新特性a. https://v3.cn.vuejs.org/b.setup的用法c.ref 和 reactive 的用法d.新版 v-model 的用法e.script setup的用法 2.TypeScript基础 后端接口配置 如何修改后台项目路径 http://127.168.3.52:8…