Skip to content

Nginx(2004)

关键词:网关、反向代理

一、Nginx 是什么?

1.1 官方定义

Nginx 是一个高性能 Web 服务器、反向代理服务器、负载均衡器。

翻译成人话:

Nginx 是一个:

  • 🌐 网站服务器(放网页)
  • 🚦 流量调度员(转发请求)
  • ⚖ 负载均衡器(分流给多台服务器)
  • 🛡 网关(挡攻击、限流)

1.2 为什么会有 Nginx?

早期互联网用的是 Apache:

  • 一个请求一个进程
  • 并发一高 → 服务器爆炸
  • 内存占用巨大

2004 年,俄罗斯工程师 Igor Sysoev 发明 Nginx:

  • 专门解决: 👉 高并发、低内存、稳定运行

现在全球:

  • 超过 50% 网站在用 Nginx
  • 微信、阿里、B 站、抖音 都在用

二、Nginx 能干什么?(核心功能)

2.1 Web 服务器

托管网站:

浏览器 → Nginx → 返回 HTML 页面

比如:

  • 公司官网
  • 后台管理系统
  • H5 页面

2.2 反向代理(最重要)

什么是代理?

你访问:

www.company.com

实际:

Nginx → 后端服务(Go/Java/Python)

你永远只看到 Nginx,看不到真实服务器。

作用:

  • 隐藏后端
  • 统一入口
  • 更安全

2.3 负载均衡

如果你有 3 台后端服务器:

用户请求 → Nginx
             ↙ ↘ ↘
          server1 server2 server3

方式:

  • 轮询
  • 权重
  • 按 IP
  • 最少连接数

2.4 静态资源服务器

Nginx 特别适合:

  • 图片
  • CSS
  • JS
  • 视频

比后端程序快很多。

2.5 HTTPS 证书管理

Nginx 可以:

  • 安装 SSL 证书
  • 把 http → https
  • 加密通信

2.6 安全防护

  • 限流(防刷接口)
  • IP 黑名单
  • 防止暴力请求
  • 防爬虫

三、Nginx 的工作原理(核心思想)

3.1 事件驱动模型(非常重要)

Apache:

一个请求一个进程(重)

Nginx:

一个进程处理成千上万请求(轻)

原理:

  • 非阻塞 IO
  • epoll 机制
  • 异步事件循环

就像:

一个服务员服务 100 桌,而不是 100 个服务员服务 100 桌

3.2 架构

Master + Worker

Master 进程
   |
Worker1 Worker2 Worker3
  • Master:管理
  • Worker:处理请求

特点:

  • 稳定
  • 高并发
  • 崩一个 Worker 不影响其他

四、Nginx 的组成结构

4.1 核心模块

模块作用
http网站服务
streamTCP 代理
mail邮件代理
events并发处理

4.2 配置文件结构

默认路径:

/etc/nginx/nginx.conf

基本结构:

nginx
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }
    }
}

你要理解:

  • server = 一个网站
  • location = 一个路由规则

五、Nginx 的核心应用场景

场景 1:公司官网

浏览器 → Nginx → 返回页面

场景 2:前后端分离

前端请求 → Nginx → 后端 API

场景 3:多服务统一入口

/api → 后端服务A
/admin → 后端服务B

场景 4:高可用

  • 多台服务器
  • Nginx 做入口
  • 一台挂了继续服务

六、Nginx 与 Docker / K8S 的关系

6.1 Nginx + Docker

Nginx 可以作为容器:

docker run -d -p 80:80 nginx

用来:

  • 统一入口
  • 反向代理多个容器

6.2 Nginx + K8S

在 K8S 中:

  • Nginx = Ingress Controller
  • 管理集群流量入口

七、Nginx 运维核心能力(你最需要)

7.1 服务启动/停止

bash
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx

7.2 开机自启

bash
systemctl enable nginx

7.3 崩溃自动恢复(守护)

结合:

  • systemd
  • Docker restart=always
  • supervisor

7.4 停电恢复方案

最低级方案:

  • 所有服务注册为 systemctl
  • 开机自动启动

推荐方案:

  • Docker + docker-compose
  • Nginx + 后端容器
  • 一条命令恢复:
bash
docker compose up -d

八、Nginx 常见问题

8.1 502 Bad Gateway

= 后端服务挂了

8.2 403 Forbidden

= 权限问题

8.3 404

= 路径不对

8.4 端口冲突

= 已有程序占用端口

九、Nginx 本质一句话总结

Nginx 是互联网的“门卫 + 交通警察 + 保安 + 管家”。

十、网上资源截图(非商用)

An image

An image

An image

An image

An image

An image

An image

An image