ENTITY
Nginx
核心定义
Nginx是一款开源的高性能轻量级软件,同时具备Web服务器与反向代理服务器能力,是当前互联网后端架构中应用最广泛的反向代理实现软件。
核心优势
相比传统Apache服务器,Nginx具备以下不可替代的优势:
- 并发承载能力更强:单机可支持数万甚至数十万级并发连接,适合高流量业务场景
- 资源占用极低:空载运行仅占用数MB内存,处理上万并发连接内存消耗也仅为几十MB
- 配置灵活扩展性强:采用模块化设计,配置语法简洁易懂,可通过第三方模块扩展各类能力
- 行业普及率极高:几乎所有中大型互联网公司的后端架构都会采用Nginx作为入口组件
典型应用场景
Nginx的常见应用场景包括:
- 反向代理入口:作为服务端唯一对外暴露的入口,隐藏真实后端服务器的IP与架构信息,大幅提升服务安全性
- 负载均衡调度:按照预设权重、轮询等规则将用户请求均匀分发至多台后端业务服务器,提升整体服务的承载能力与可用性
- 静态资源托管:直接托管图片、CSS、JS、HTML等静态资源,响应速度远高于动态业务服务器,同时可配置缓存进一步降低回源开销
- HTTPS证书部署:统一在Nginx层配置SSL证书,无需每台后端服务器单独配置,降低证书维护成本
- 接口网关能力:支持在Nginx层快速配置限流、黑白名单、请求过滤、跨域处理等规则,无需修改后端业务代码即可实现网关能力
网站访问流程中的角色
在常规网站访问流程中,Nginx作为服务端入口承担中间调度角色,具体流程如下:
- 用户浏览器发起对域名的访问请求,首先解析到Nginx服务器的IP并建立连接
- Nginx对请求类型做判断:
- 若为静态资源请求,直接返回本地存储的对应资源
- 若为动态业务请求,将请求转发给后端的Tomcat/Node.js/Python等业务服务器处理
- 后端业务服务器处理完成后将结果返回给Nginx
- Nginx将最终结果返回给用户 整个流程中用户全程仅能感知到Nginx的存在,无法获取后端真实服务器的任何信息。
概念边界:正向代理与反向代理的区别
很多开发者容易混淆正向代理与反向代理的概念,二者核心差异如下:
| 代理类型 | 所处位置 | 核心作用 | 典型场景 |
|---|---|---|---|
| 正向代理 | 站在用户侧 | 代理用户访问外部资源,隐藏用户真实信息 | 科学上网、公司内网代理访问外网 |
| 反向代理 | 站在服务端侧 | 代理后端服务器接待用户请求,隐藏服务端真实信息 | 网站入口、负载均衡、统一安全管控 |
| 通俗区分规则:正向代理是「用户找代理帮自己出去」,反向代理是「服务端找代理帮自己接客」。 |
相关条目
- 反向代理
- 反向代理和Nginx通俗解释
- Apache
- Tomcat
- 负载均衡
- Web服务器