很多刚接触后端开发的人,第一次听到 Nginx 都会有一个疑问:
"这东西到底是写代码用的吗?为什么我在项目里找不到它?"
这篇文章就从 0 基础 把 Nginx 讲清楚,让你一次性理解:
- Nginx 是什么
- 它在系统里的位置
- 为什么不写在代码里
- 开发者什么时候会用到它
一、Nginx 是什么?
一句话定义:
Nginx 是一个站在服务器最前面的"门卫程序"。
它不是写业务的工具,
而是负责:
- 挡流量
- 分发请求
- 保护后端
- 提高性能
二、用现实类比理解
想象一家公司:
- 客户进门找人
- 财务、技术、销售都在不同楼层
如果没有前台:
所有人直接冲进办公室
结果一定混乱。
如果有前台:
客户 → 前台 → 指路 → 各部门
Nginx 就是服务器的"前台"。
三、没有 Nginx 的网站
浏览器 → Spring Boot
问题:
- 用户一多就卡
- 后端压力大
- 没有统一入口
- 容易被攻击
四、有 Nginx 的网站
浏览器
↓
Nginx
↓
后端程序
Nginx 可以:
- 决定把请求交给谁
- 控制访问频率
- 直接返回图片
- 把流量分给多台服务器
五、Nginx 的四大核心能力
1. 反向代理
用户访问域名,
真实后端地址对用户隐藏。
2. 负载均衡
当有多台服务器时,
自动平均分配流量。
3. 静态资源加速
图片、JS、CSS 直接由 Nginx 返回,
后端不用参与。
4. 限流与防攻击
控制访问频率,
防止接口被刷爆。
六、Nginx 在系统中的位置
浏览器
↓
Nginx ← 门卫
↓
后端程序
↓
数据库
记住一句话:
Nginx 永远站在最前面。
七、为什么 Nginx 不写在代码里?
因为 Nginx 的定位是:
程序外的独立服务
它不是:
- Java 类库
- Maven 依赖
- import 语句
它是一个 服务器进程 + 配置文件。
八、Nginx 是怎么"写"的?
不是写 Java,而是写配置文件:
bash
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
特点:
- 没有 class
- 没有函数
- 是配置语言
九、开发者什么时候会用到 Nginx?
开发阶段:基本不用。
部署阶段:几乎必用。
常见场景:
- 用域名访问项目
- 开启 HTTPS
- 前后端分离
- 多服务器负载
- 高并发流量控制
十、一句话终极理解
你写的是"业务逻辑",
Nginx 写的是"流量逻辑"。
业务逻辑在代码里,
流量逻辑在服务器上。
当你理解 Nginx 后,你会发现:
- 它不是框架
- 不是库
- 不是代码
- 它是系统入口
没有它,小项目能跑;
有了它,大项目才稳。