前后端请求之nginx配置

问题: 前端发送的请求,是如何请求到后端服务器的?
如,前端请求地址:http://loclhost/api/employee/login:
在这里插入图片描述

后端相应请求地址:http://loclhost:8080/admin/employee/login
在这里插入图片描述
在这里插入图片描述
回答: 使用nginx进行反向代理,即将前端发送的动态请求由nginx转发到后端服务器。

nginx代理的好处:

使用nginx进行反向代理的好处:

  • 提高访问速度:nginx可以缓存数据,当请求同样的接口地址时,无需请求真正的后端服务,直接将nginx中缓存的数据响应给前端,从而提高了响应速度。

  • 进行负载均衡:系统上线之后,有可能访问压力较大,后端可能需要部署多台服务器构成服务器集群。此时,nginx可以作为负载均衡器,将前端发过来的大量请求均衡的分配给后端的各个服务器,如下图所示:
    在这里插入图片描述

  • 保证后端服务安全:在真实企业项目当中,很多后端服务并没有直接暴露给互联网,而是部署在公司内部的局域网内的,并不是对外开放的,因此通过前端并不能直接请求到后端的服务的,所以需要将前端请求发送到nginx服务器,然后nginx服务器走内网发送到后端服务器,如下图所示:
    在这里插入图片描述

如何实现相关nginx配置:

在这里插入图片描述
在这里插入图片描述
负载均衡策略:
在这里插入图片描述

举例


user  root;
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#gzip  on;map $http_upgrade $connection_upgrade{default upgrade;'' close;}upstream webservers{server 127.0.0.1:8080 weight=90 ;#server 127.0.0.1:8088 weight=10 ;}server {listen       80;server_name  localhost;location / {root   /home/zxy/Projects/CangQiong/FrontEnd/nginx-1.20.2/html/sky;index  index.html index.htm;}# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# 反向代理,处理管理端发送的请求location /api/ {proxy_pass   http://localhost:8080/admin/;#proxy_pass   http://webservers/admin/;}# 反向代理,处理用户端发送的请求location /user/ {proxy_pass   http://webservers/user/;}}
}

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

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

相关文章

【单调栈】【二分查找】LeetCode: 2454.下一个更大元素 IV

作者推荐 【动态规划】【广度优先】LeetCode2258:逃离火灾 本文涉及的基础知识点 二分查找算法合集 单调栈 题目 给你一个下标从 0 开始的非负整数数组 nums 。对于 nums 中每一个整数,你必须找到对应元素的 第二大 整数。 如果 nums[j] 满足以下条件&#xff…

通过3000个传感器帮助大型大学附属医院实现远程环境监测

来源:虹科环境监测技术 虹科案例 | 通过3000个传感器帮助大型大学附属医院实现远程环境监测 原文链接:https://mp.weixin.qq.com/s/wRxhT4n13cuCA7pEj4M-4w 欢迎关注虹科,为您提供最新资讯! 在本案例研究中,您将了解…

Java EE 多线程之多线程案例

文章目录 1. 多线程案例1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式1.1.3 多线程下的单例模式 1.2 阻塞队列1.2.1 阻塞队列定义1.2.2 生产者消费者模型的意义1.2.4 标准库中的阻塞队列1.2.5 实现阻塞队列1.2.6 用阻塞队列实现生产者消费者模型 1.3 实现定时器1.3.1 标准库中的定…

Python:核心知识点整理大全14-笔记

目录 ​编辑 7.2.2 让用户选择何时退出 parrot.py 7.2.3 使用标志 7.2.4 使用 break 退出循环 cities.py 7.2.5 在循环中使用 continue counting.py 7.2.6 避免无限循环 counting.py 7.3 使用 while 循环来处理列表和字典 7.3.1 在列表之间移动元素 confirmed_user…

软件科技成果鉴定测试有什么好处?注意事项有哪些?

软件科技成果鉴定测试是指对软件科技成果进行检测和评估的过程。通过这个测试,可以评估软件科技成果的技术水平、功能性能以及可靠性,并为相关单位和个人提供科学的评价依据。    一、进行软件科技成果鉴定测试有以下好处:   1、客观评价…

L1-024:后天

题目描述 如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。 输入格式: 输入第一行给出一个正整数D(1 …

软件设计师——软件工程(一)

📑前言 本文主要是【软件工程】——软件设计师——软件工程的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

Qt 线程

💡 进度条显示拷贝进度(verson 1) 窗口上放置一个按钮和一个进度条部件,点击按钮,进行拷贝操作 —— 打开对话框选择源文件,然后再打开一个对话框 选择 目标文件存放位置和名称。拷贝过程中进度条显示当前…

在接触新的游戏引擎的时候,如何能快速地熟悉并开发出一款新游戏?

引言 大家好,今天分享点个人经验。 有一定编程经验或者游戏开发经验的小伙伴,在接触新的游戏引擎的时候,如何能快速地熟悉并开发出一款新游戏? 利用现成开发框架。 1.什么是开发框架? 开发框架,顾名思…

ArkUI List组件

我们在column中使用foreach循环渲染数据的时候,如果数据过多,超出屏幕高度,会出现隐藏的情况。 class Item {name: stringimage: ResourceStrprice: numberdiscount: numberconstructor(name: string, image: ResourceStr, price: number,dis…

微服务-理论 分布式事务

一、分布式事务理论模型 分布式事务问题也叫分布式数据一致性问题,简单来说就是如何在分布式场景中保证多个节点数据的一致性。分布式事务产生的核心原因在于存储资源的分布性,比如多个数据库,或者MySQL和Redis两种不同存储设备的数据一致性…

智慧储能数字孪生,引领新能源革命

随着社会对清洁能源的需求不断增加,智能储能技术成为能源转型的关键驱动力。在这一领域中,数字孪生技术的应用为智慧储能带来了全新的可能性。数字孪生是指数字化、实时、可视化的模拟系统,通过复制现实世界中的对象或过程,为智能…