🚀 Nginx 核心功能与架构

⚡ 高性能架构

  • 事件驱动模型 - 采用 epoll/kqueue 机制,单进程可处理数万并发连接
  • 异步非阻塞 - 零拷贝技术(sendfile),减少内核态与用户态切换
  • 低内存占用 - 10,000 个非活动 HTTP 连接仅占用约 2.5MB 内存
  • 高并发处理 - 单台服务器可轻松处理 5 万+ 并发连接

🔄 反向代理

  • 负载均衡 - 支持轮询、最少连接、IP哈希、加权等多种算法
  • 健康检查 - 自动检测后端服务器状态,剔除故障节点
  • 会话保持 - IP哈希实现基于客户端IP的会话粘性
  • 动态权重调整 - 根据服务器性能动态调整权重分配

🔐 安全特性

  • SSL/TLS 终止 - 支持 HTTP/2、TLS 1.3,高性能 HTTPS 加速
  • 访问控制 - IP 白/黑名单、基本认证、基于地理位置的访问限制
  • 防 DDoS - 连接限流(limit_req)、速率限制(limit_conn)
  • 请求过滤 - 支持自定义过滤规则,阻止恶意请求

📦 静态资源服务

  • 高效缓存 - 支持 expires、cache-control 头部设置
  • 静态文件压缩 - gzip/brotli 压缩,节省带宽
  • 范围请求 - 支持断点续传,视频流媒体服务
  • Sendfile 零拷贝 - 直接内核态文件传输,CPU 使用率极低

🌐 虚拟主机

  • 基于域名 - server_name 指令支持多域名绑定
  • 基于端口 - 监听不同端口,实现多服务部署
  • 基于 IP - 支持多网卡、多 IP 地址配置
  • 通配符匹配 - 支持泛域名和正则表达式匹配

🎯 负载均衡策略

  • 轮询(Round Robin) - 默认策略,按顺序分发请求
  • 最少连接(Least Connections) - 分发到连接数最少的服务器
  • IP哈希(IP Hash) - 基于客户端IP哈希,同一IP固定访问同一后端
  • 加权轮询 - 根据服务器性能分配不同权重

🏗️ 核心模块体系

核心模块

ngx_http_core_module   - HTTP 核心功能
ngx_event_module      - 事件处理机制
ngx_mail_module       - 邮件代理功能
ngx_stream_module     - TCP/UDP 代理

HTTP 处理模块

ngx_http_proxy_module     - HTTP 反向代理
ngx_http_upstream_module - 上游服务器管理
ngx_http_ssl_module      - SSL/TLS 支持
ngx_http_gzip_module     - 压缩模块

第三方模块

ngx_http_lua_module     - Lua 脚本支持
ngx_cache_purge        - 缓存清除
ngx_http_substitutions - 内容替换
nginx-rtmp-module      - 流媒体服务

# RTMP 流媒体配置示例
rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        
        application live {
            live on;
            record off;
            hls on;
            hls_path /tmp/hls;
            hls_fragment 3;
        }
        
        application vod {
            play /var/videos;
        }
    }
}

# HLS 点播配置
server {
    listen 8080;
    location /hls {
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /tmp;
        add_header Cache-Control no-cache;
    }
}