1.初始 Nginx
1.初始 Nginx
@
先看 2 个实际需求,引出 Nginx
需求 1: 访问不同微服务
示意图:
需求 2: 轮询访问服务
示意图:
解决方案: Nginx:
- 反向代理:
- 负载均衡:
- 动静分离:
-
高可用集群:
Nginx 在分布式微服务架构的位置
1. Nginx 的概述
Nginx 是什么?能做什么?
- 是什么: Nginx 是("engine x") 是一个高性能的 HTTP 和反向代理 Web 服务器
- 能做什么: 反向代理,负载均衡,动静分离,高可用集群
厉害之处: 高性能,高负载,有报告表明能支持高达 50,000 个并发连接数。
更多详细说明:https://lnmp.org/nginx.html
官方地址:https://nginx.org/
官方使用文档:https://nginx.org/en/docs/
2. Nginx 核心功能的详细说明
2.1 正向代理
一句话:如果我们要访问 www.google.com 但是直接访问不到,则需要通过代理服 务器来访问,这种代理服务就称为正向代理
图解说明:
我们知道 www.google.com , 但是访问不到,所以使用代理服务器帮助我们即客户端来上网 注意帮助的对象是客户端 这种代理我们称为 **正向代理. **
正向代理同时也隐藏了客户端信息.
再次说明,正向代理帮助的是客户端 因此可以把 客户端+正向代理服务 , 视为一个整体,进行理解。
正向代理:是我们客户端自己知道代理的服务对象是谁,同时客户端自己可以
指定
代理访问的对象是谁。
2.2 反向代理
一句话:客户端将请求发送到代理服务器,由代理服务器去选择目标服务器
获取数据后,返回给客户端,这种代理方式为反向代理 。
图解说明:
- 项目设计者,不希望客户端直接访问目标 Web 服务器(比如:目标 Web 服务器是集群,如果直接访问就会提供多个公网 IP),而是希望提供一个统一的访问IP,这个是理解反向代理的前提 ,即为什么要反向代理。
- 反向代理帮助的对象是目标 Web 服务器 。
- 当客户端请求达到反向代理服务后,由反向代理服务来决定如何访问目标 Web 服务器(或者是哪个 Web 服务器),这个过程对客户端是透明的。
- 反向代理服务会暴露公共的IP,只要能上网,就可以访问,但是对于反向代理服务器管理的/代理的 Web 服务器通常是在局域网内,不能直接访问,只能通过反向代理来访问。
- 我们可以将 反向代理服务 + 反向代理服务代理的 Web 服务器视为一个整体。
- 反向代理会屏蔽内网服务器(也就是他代理的服务)信息,并实现负载均衡访问。
2.3 负载均衡
一句话:当客户端向反向代理服务器(比如 Nginx)发出请求,如果 Nginx 代理了多个 WEB 服务器(集群),Nginx 会将请求/负载分发到不同的服务器,也就是负载均衡 。
2.4 动静分离
一句话:为了加快网站的解析速度,可以把动态资源和静态资源由不同的服务器来解析,降低单个服务器的压力 。
传统的项目资源部署:
动静分离项目资源部署:
3. 最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了