很多人第一次接触 Nginx,会把它理解成“一个 Web 服务器”。这没错,但不够准确。
更好记的理解是:
互联网车辆
|
v
+----------------------+
| 城市总闸口 Nginx |
|----------------------|
| 1. 看域名和端口 |
| 2. 选 server 闸门 |
| 3. 选 location 车道 |
| 4. 直接发静态资源 |
| 5. 或转发到后方服务 |
| 6. 或做重写/重定向 |
| 7. 或先查缓存 |
| 8. 全程记日志 |
+----------------------+
|
+--> 静态资源仓库
|
+--> 应用服务 A
|
+--> 应用服务 B
|
+--> 应用服务集群所以你要学 Nginx,真正要学的是一条固定主线:
请求进城
-> 先命中哪个 server
-> 再命中哪个 location
-> 决定直接返回 / 代理转发 / 重写跳转 / 读取缓存
-> 记录访问和错误这条主线一旦理解,后面所有配置都不会散。