📌 一、什么是 Nginx?

✅ Nginx(engine x)是一个 高性能、高并发、轻量级Web 服务器反向代理服务器
✅ 同时支持:HTTP 服务器、反向代理、负载均衡、缓存、动静分离等功能

典型应用场景:

  • 网站服务器(如静态页面、图片、视频服务)
  • 反向代理(隐藏真实服务器)
  • 负载均衡(分发请求)
  • 接口限流、黑白名单
  • HTTPS 终端、SSL卸载

📌 二、Nginx 核心模块组成

模块作用
http处理 HTTP 请求,支持反向代理、缓存、访问控制等
server定义虚拟主机,监听端口和域名
location匹配具体请求路径,做转发、代理或直接返回
upstream配置后端服务器集群,实现负载均衡
events控制连接数、IO模型(epoll/kqueue)等性能参数

📌 三、核心配置结构(实战级)

worker_processes  4;  # 工作进程数(CPU核数)

events {
    worker_connections  1024;  # 每个进程最大连接数
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    upstream backend {
        server 127.0.0.1:8081 weight=3;
        server 127.0.0.1:8082;
    }

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

        location /static/ {
            root /var/www/html;
        }

        location /api/ {
            proxy_pass http://backend;
        }
    }
}

📌 四、反向代理(经典)

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

✅ 作用:客户端请求先到 Nginx,由 Nginx 转发给后端服务器


📌 五、负载均衡策略(面试重点)

upstream backend {
    server 192.168.1.10 weight=3;
    server 192.168.1.11 weight=1;
}

支持算法:

算法作用
轮询(默认)顺序分配请求
weight 权重权重大者分配多
ip_hash同一IP固定访问同一后端
least_conn连接数最少的优先

📌 六、动静分离(高性能优化)

location ~* \.(jpg|png|css|js|ico)$ {
    root /usr/share/nginx/html/static;
    expires 30d;  # 强缓存
}
location / {
    proxy_pass http://backend;
}

✅ 静态资源 Nginx 直接返回,动态请求转发后端,减轻服务器压力


📌 七、Nginx 限流/防刷(实战超经典)

limit_req_zone $binary_remote_addr zone=limitZone:10m rate=10r/s;

server {
    location /api/ {
        limit_req zone=limitZone burst=5 nodelay;
        proxy_pass http://backend;
    }
}

✅ 限流效果:同一 IP 每秒最多 10 个请求,超出进入排队


📌 八、Nginx 支持 HTTPS(SSL配置)

server {
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;

    location / {
        proxy_pass http://backend;
    }
}

✅ 作用:

  • 数据加密传输
  • 防止中间人攻击
  • 配置简单,性能好

📌 九、Nginx 热部署 & 日志

nginx -s reload       # 热加载配置
nginx -s stop         # 停止Nginx

# 日志路径
access_log  logs/access.log;
error_log   logs/error.log;

📌 🔥 十、面试必问核心总结

知识点快速回答
Nginx 为什么高性能?IO 多路复用(epoll),异步非阻塞,单线程高并发
负载均衡策略有哪些?轮询、权重、ip_hash、least_conn
动静分离怎么做?静态资源 Nginx 直接处理,动态交后端
Nginx 限流怎么做?limit_req 限 IP 请求速率
Nginx 怎么实现 HTTPS?ssl_certificate、ssl_certificate_key

📌 十一、Nginx 应用场景总结

✅ 网站服务器(部署静态文件)
✅ 网关(API 反向代理、接口聚合)
✅ 负载均衡(高并发转发、后端集群)
✅ 安全防护(限流、防刷、IP 过滤)
✅ 图片/视频 CDN 服务器
✅ 接入 HTTPS,安全加密传输


📌 十二、总结一句话:

Nginx = 高性能反向代理 + 负载均衡 + 静态服务器 + 安全防护神器,互联网架构必备!


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐