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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月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月前
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
79 4
|
2天前
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
|
3月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
298 9
|
4月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
3月前
|
负载均衡 算法 应用服务中间件
Nginx的负载均衡
Nginx 是一款高性能的Web服务器与反向代理服务器,支持负载均衡功能,能有效提升系统性能与可靠性。其负载均衡策略包括基于轮询和权重的分配方法,以及IP哈希、最小连接数等算法,可根据实际需求灵活选择。
230 5
|
3月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
235 3
|
4月前
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
198 3
|
5月前
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
|
9月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
171 2
|
8月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
170 1