前后端请求之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.mzph.cn/news/214321.shtml

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

相关文章

使用MfgTool烧写前需准备的文件

一. 简介 本文我们就来学习,如何将我们编译的 uboot,zImage(内核镜像),xxx.dtb设备树文件,还有制作的根文件系统,这四个文件烧写到开发板中,最后 开发板能正常启动。 本文这里使用…

【日志技术】附Logback入门教程

文章目录 日志概论日志的体系Logback快速入门日志配置文件配置日志级别 日志概论 什么是日志?其实可以通过下面几个问题来了解的。 系统系统能记住某些数据被谁操作,比如被谁删除了?想分析用户浏览系统的具体情况,比如挖掘用户的…

一个简单的Python自动化测试 logging 日志模块,为何会难住一个工作6年的测试?

写Python程序的时候, 我们经常需要写日志, 以便调试程序,发现问题,以及查看程序的运行状态。 Python自带了logging模块,可以将日志保存到.txt文件中, 也可以输入到界面上。 我们希望日志有一定的格式, 比…

【性能优化】性能优化实战

一、背景 在做code review的时候,经常会发现,因为开发习惯问题,很多研发人员喜欢在for循环中查询数据库。今天用一个真实例子,记录一次查询性能优化的例子 二、示例 代码如下: classmethod fn_performance() def get_task_ins…

Linux常用调试工具gdb

程序编译后,调试是十分重要的环节,如何更好更快的定位程序中的问题, 是加快程序开发进度的重要因素。Gdb 调试器是一款 GNU 开发组织并发布的 UNIX/Linux 下的程序调试工 具。GDB调试 编译要点 对代码进行编译,注意一定要加上选项…

【C语言】【数据结构】自定义类型:结构体

引言 这是一篇对结构体的详细介绍,这篇文章对结构体声明、结构体的自引用、结构体的初始化、结构体的内存分布和对齐规则、库函数offsetof、以及进行内存对齐的原因、如何修改默认对齐数、结构体传参进行介绍和说明。 ✨ 猪巴戒:个人主页✨ 所属专栏&am…

Ubuntu——永久挂载/卸载硬盘

Ubuntu——永久挂载/卸载硬盘 一、挂载1. 查询硬盘2. 格式化硬盘3. 挂载硬盘4. 开机自动挂载5. 查看挂载是否成功 二、取消挂载参考资料: 一、挂载 1. 查询硬盘 sudo fdisk -l2. 格式化硬盘 # 格式化硬盘(/dev/sda)的文件系统,这里格式化为 ext4 系统…

面试经典150题(3-4)

leetcode 150道题 计划花两个月时候刷完,今天(第二天)完成了两道(3-4)150: (26. 删除有序数组中的重复项) 题目描述: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使…

C#生成Token字符串

Token字符串来保证数据安全性,如身份验证、跨域访问等。但是由于Token字符串的长度比较长,可能会占用过多的空间和带宽资源,因此我们需要生成短的Token字符串 方法一:使用Base64编码 Base64编码是一种常用的编码方式&#xff0c…

测试:接口参数测试

接口参数测试是接口测试中非常重要的一部分,主要是为了验证接口在不同参数输入下的行为和响应。下面详细介绍一下接口参数测试的相关内容: 参数必填与非必填测试:需要测试接口对必填参数和非必填参数的处理。对于必填参数,不提供…

【学习笔记】LLM for Education

ChatGPT has entered the classroom: how LLMs could transform education 前言IntroductionThe risks are realEmbracing LLMsIntroducing the AI tutorAugmenting retrievalWill it catch on?总结 前言 一篇来自Nature的文章,探讨了教育行业的不同参与者&#x…

webSRc实现浏览器播放rtsp【海康】

先上代码 <template><div>video的配置自己写<video id"video" autoplay width"900" height"900"></video></div> </template><script> export default {name: index1,data() {return {webRtcServer: …

WampServer本地部署结合内网穿透实现公网访问本地服务

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片

ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片 概述 不同于上节 ESP32-Web-Server编程-在网页中通过 src 直接插入图片,本节引入 Base64 编码来显示图片。 Base64 是一种用64个字符来编码表示任意二进制数据的方法。任何符号都可以转换成 Base64 字符集中的字符,…

在做题中学习(31):电话号码的字母组合(全排列)

17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;既然要排列组合&#xff0c;就得先根据数字字符取出来 所以先定义一个string类的数组通过下标取到每个数字对应的映射。 string _numsTostr[10]{"","","abc"…

聊聊AsyncHttpClient的KeepAliveStrategy

序 本文主要研究一下AsyncHttpClient的KeepAliveStrategy KeepAliveStrategy org/asynchttpclient/channel/KeepAliveStrategy.java public interface KeepAliveStrategy {/*** Determines whether the connection should be kept alive after this HTTP message exchange.…

进程的相关知识

进程基本概念&#xff1a;1、进程是程序的一次执行过程&#xff0c;进程是资源分配的基本单位&#xff1b;2、每个进程都会分配自己的0至3G的内存空间&#xff0c;这个0至3G的内存空间可以有多份&#xff0c;但是3G至4G的内核空间独一份&#xff1b;3、进程其实是内核创建的&am…

gitee对接使用

1.创建一个文件夹 2.进入Gitee接受对方项目编辑 3.打开终端初始化一开始创建的文件夹 git init 3.1打开终端 3.2输入git.init 4.克隆对方的项目 4.1进入Gitee复制对方项目的路径 4.2在编辑器终端内克隆对方项目 git clone 网址 如此你的编辑器就会出现对方的项目 …

小红书AI文章写作工具,免费的小红书AI写作工具有哪些

社交媒体已经成为人们交流、分享生活和获取信息的主要平台之一。而在这众多社交媒体中&#xff0c;小红书以其独特的社区氛围和内容特色而备受瞩目。如何更高效地进行小红书文章创作&#xff0c;本文将深入研究小红书文章AI写作工具。 小红书文章AI写作工具背后的技术 随着人工…

Java基于Rest Assured自动化测试接口详解

前言 不知道大家的项目是否都有对接口API进行自动化测试&#xff0c;反正像我们这种小公司是没有的。由于最近一直被吐槽项目质量糟糕&#xff0c;只能研发自己看看有什么接口测试方案。那么在本文中&#xff0c;我将探索如何使用 Rest Assured 自动化 API 测试&#xff0c;Re…