Nginx 反代到底干了啥?从黄牛抢票说起

服务器基础 Aug 6, 2022

你知道 Nginx 反向代理是什么嘛?

如果网络是一个大市场,那 Nginx 反向代理就是“黄牛”。开玩笑的,其实它更像一个客服小姐姐

正向代理 vs 反向代理

先搞清两个概念:

  • 正向代理(VPN就是典型例子):你说“我要看 Netflix”,代理说“我替你去看”。服务器不知道是你,只知道是代理。
  • 反向代理(Nginx就是典型例子):你说“我要看百度”,代理说“我帮你找服务器”。你不知道是哪台服务器给你的数据,只知道是代理给你的。

为什么要用 Nginx 反向代理?

想象一下,你开了一家火锅店。一天只有 10 个桌子,但来了 100 个人。怎么办?

  1. 请一个叫号小姐姐(Nginx)站在门口
  2. 客人来了,号小姐说“等一下呢”——这就是负载均衡
  3. 如果某个厨师今天请假了,把客人引导到另一个厨师——这就是故障迁移
  4. 不能让客人直接进厨房,要通过号小姐——这就是安全性

简单配置示例

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /api/ {
        proxy_pass http://localhost:4000;
        proxy_set_header Host $host;
    }
}

这段配置意思是:当有人访问 example.com 时,Nginx 把请求转发给 localhost:3000(你的 Node.js 应用);如果访问 /api/,就转发给 localhost:4000(你的 Python 后端)。

Nginx 还能做什么?

  • 静态文件服务(HTML/CSS/JS)
  • HTTPS 终止(配合 Let's Encrypt)
  • 请求限流(防 DDos)
  • Gzip 压缩
  • 缓存加速

总结

Nginx 反向代理就是你网站的“门面”——客人看见的是它,后面的服务器长什么样他们不知道。简单、高效、稳定,几乎每个生产环境都有它。

Tags