Nginx之反向代理与负载均衡

今天我们一起学习一下反向代理

Nginx的反向代理分为http七层的反向代理和四层的反向代理(stream)。

在学习反向代理的过程中会引出两个概念:

1. 负载均衡

2. 缓存


一个请求的顺序是先到达Nginx->上游服务->返回到客户端。

我们先来看下负载均衡:


可以从图中看到不同客户端的请求会按照不同的策略,打到不同的应用服务器上。

这时候可能服务器2 宕机了,又扩容了一个服务器4。

这样就给这个应用服务集群提高了CAP中的A 可用性。包括了容灾,扩容。

而负载均衡是实现整个服务可用性的重要手段。


我们现在看一下可扩展性是怎样通过负载均衡来保证的。




有了反向代理后,我们又会引出另一个概念--缓存。

缓存也分为2类:

时间缓存:比如现在有一个用户访问了index.html,请求到达Nginx,Nginx没有这个内容,就会去应用服务器获取内容,然后Nginx会做2件事情。先把内容返回给客户端,然后把内容缓存在Nginx所在的服务器。这样等下次再请求这个内容的时候,Nginx发现这个内容已经缓存了,而且是在缓存有效期之内,它就不用去应用服务器,直接返回给客户端,这样就减少了整个请求的环节,而且Nginx的性能要比应用服务器的性能更好。

空间缓存:当一个请求去访问后端一些内容的时候,Nginx可以加快速度预取一些响应的内容放在Nginx上面,这个使用相对比较少。

相关文章

一文搞懂Nginx反向代理、负载均衡的原理与配置

大家好,我是IT售前工程师Bernie。本文重点介绍反向代理、正向代理的区别,以及Nginx的反向代理、负载均衡原理。为什么需要代理服务器当一个网站并发量特别小,用户特别少的时候,我们在服务器上放一个...

Nginx反向代理之proxy_set_header指令

该指令可以更改Nginx服务器接收到的客户端请求的请求头信息,然后 将新的请求头发送给代理的服务器proxy_set_header是什么意思呢?这里涉及到客户端,代理服务器,被代理的服务器一般都是客户...

深度揭秘!Spring Boot 3 拦截器获取请求 IP 的机制及实战应用

在互联网大厂后端开发的复杂场景中,精准获取请求 IP 地址是众多功能实现的基础,比如安全防护、用户行为分析、个性化服务定制等。今天,就带大家深入探索 Spring Boot 3 拦截器获取请求 IP...

告别繁琐配置,Nginx Proxy Manager:你的家庭网络反向代理利器

在家庭网络中搭建各种服务,如个人博客、文件共享、影音中心等,已经成为许多技术爱好者的日常。然而,配置反向代理和管理 SSL 证书往往让人望而却步。今天,我们要介绍的开源项目 Nginx Proxy M...

java 面试题:如何实现跨域?

在 Java 中实现跨域(Cross-Origin Resource Sharing,CORS)主要有以下几种方式,具体选择取决于应用场景和架构设计:一、前端代理(开发环境)在开发环境中,可通过前端脚...