【Nginx 快速入门】反向代理、负载均衡、动静分离

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 【Nginx 快速入门】反向代理、负载均衡、动静分离

一样东西的诞生通常都是为了解决某些问题,对于 Nginx 而言,也是如此。


比如,你出于无聊写了一个小网站,部署到 tomcat 之后可以正常访问了,好开心。


这时候你的网站用户非常少,不会存在高并发的情况,这时候一个 jar 包启动应用就足够了,然后内部的 tomcat 返回内容给用户。


1268169-20210622222946607-173565109.png


但是后来,你的这个小网站因为内容很诱人逐步的火了,用户越来越多,并发量也慢慢增大,此时一台服务器已经满足不了网站的需求了。


1268169-20210622223606794-1468765084.png


你不能眼睁睁的看着你的“孩子”被压垮呀,于是乎,一咬牙又花钱加了几台服务器。


1268169-20210622224043605-126301629.png


但是问题来了,服务器多了,比如用户1先通过的服务器1登录了,但是后来的请求又到了服务器2上,又是没登录的,这显然是不行的。


所以这时候需要一台代理服务器,帮我们转发和处理请求。于是乎,Nginx 登场了。


一、什么是Nginx


Nginx(engine x)是一个高性能的 http 和反向代理 web 服务器,同时也可以提供 IMAP/POP3/SMTP 邮件服务。


其特点是占用内存少,并发能力强,运行还很文档,几乎可以做到7x24 不间断运行,即使运行数个月也不需要重启。而且,还能在服务不间断的情况下进行软件版本的升级。

Nginx代码完全用C语言编写,官方数据测试表明能够支持高达50000个并发连接数的响应。


你一看 Nginx 这也太好了,赶紧给你的应用加上。


1268169-20210622225403628-1231648193.png


二、反向代理


既然叫反向代理,那么正向代理是什么?


正向代理


比如你想访问 Google 查一些技术问题,但是发现你根本上不去,因为有墙。后来你经过了百度的搜索,找到了一个XX浏览器插件,可以给你当梯子,好爬上去看看外面的世界。


这个插件就是正向代理了,你知道它的作用并且主动使用它做达成目的。


反向代理


与正向代理不同,正向代理用户是有感知的。而反向代理,对用户来说是无感知的,反向代理服务器介于用户和目标服务器之间,对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。


上面给小网站加了个Nginx,利用的就是反向代理。


三、负载均衡


现在有好几台服务器了,也有代理服务器了。但是因为你预算有限,后加的几台服务器配置有高有底,这时候如果能让配置高的服务器多承担点压力,让配置低的少承担点压力就好了。


Nginx的负载均衡就可以完成这样的需求。


1. 轮询


轮询,就是让过来的请求依次访问服务器。


1268169-20210622230824243-704951304.png


2. 加权轮询


加权轮询,可以根据不同的权重来分发各服务器上的请求数量。


1268169-20210622230924824-283938353.png


3. iphash


iphash 对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,这样就解决了 session 不共享的问题。


1268169-20210622231332098-976600408.png


四、动静分离


你的小网站里有些请求是需要后台处理的,但是有些请求是不需要的,比如 css、html、jpg、js等文件,这些统称为静态文件


Nginx可以根据一定规则把不变的资源和经常变的资源区分开,做好了拆分之后,我们就可以根据静态资源的特点将其做缓存操作,从而提高资源响应的速度。


1268169-20210622231752071-386948013.png


OK,通过动静分离,你的小网站响应速度也上去了,用户体验更好了,你终于送了口气。

相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
102 21
|
1月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
82 14
|
1月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
92 11
|
3月前
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
负载均衡 应用服务中间件 nginx
nginx-tomcat反向代理以及负载均衡测试
nginx-tomcat反向代理以及负载均衡测试
140 0
|
7月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
202 2
|
8月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
350 5
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
8月前
|
负载均衡 算法 应用服务中间件
nginx反向代理与负载均衡
nginx反向代理与负载均衡
289 1
|
10月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
295 3