Nginx 配置实战:反向代理、负载均衡、缓存优化

深入 Nginx 核心配置与性能优化,掌握反向代理、负载均衡、缓存优化、SSL 配置,打造高性能 Web 服务。

作者
Nginx 配置专家Nginx 核心贡献者

🚀 Nginx 架构优势

Nginx 是高性能 Web 服务器/反向代理。根据 W3Techs 2023 统计,34.2% 的网站使用 Nginx,Top 1000 网站中占比 45.6%

34.2%
全球网站使用
45.6%
Top 1000 网站
4x
性能超 Apache
10x
并发连接能力

Nginx vs Apache 核心区别

维度NginxApache
架构事件驱动(异步)进程/线程(同步)
性能高并发、低内存并发性能一般
静态文件⭐⭐⭐⭐⭐⭐⭐⭐
反向代理⭐⭐⭐⭐⭐⭐⭐⭐
配置复杂度高(.htaccess)
推荐场景高并发、静态文件、反向代理共享主机、动态内容

💡 独特观点

Nginx 的真正优势不是"快",而是架构设计。事件驱动模型让 Nginx 在内存占用极低的情况下处理海量并发连接

⚙️ 安装与基础配置

Nginx 安装非常简单。主流系统都提供官方包。

1. 安装 Nginx

📝 各系统安装命令

# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y

# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y

# macOS(Homebrew)
brew install nginx

# Docker(快速启动)
docker run -d -p 80:80 --name nginx nginx:alpine

# 验证安装
nginx -v
# nginx version: nginx/1.25.3

2. 基础配置文件结构

📝 Nginx 配置文件结构(Linux)

# 主配置文件
/etc/nginx/nginx.conf

# 站点配置(推荐)
/etc/nginx/sites-available/  # 可用配置
/etc/nginx/sites-enabled/   # 启用配置(软链接)

# 其他配置
/etc/nginx/conf.d/          # 额外配置片段

# 静态文件目录
/var/www/html/

# 日志目录
/var/log/nginx/
  ├── access.log           # 访问日志
  └── error.log            # 错误日志

📝 最小可用配置(nginx.conf)

user www-data;
worker_processes auto;  # 自动设置为 CPU 核心数
pid /run/nginx.pid;

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

http {
    # 基础配置
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    # MIME 类型
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # 日志格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log warn;

    # Gzip 压缩
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/javascript;

    # 包含站点配置
    include /etc/nginx/sites-enabled/*;
}

📝 总结与展望

Nginx 是高性能 Web 服务的基石。通过本文的学习,你应该掌握了:

🎯 核心要点

  • 架构优势:事件驱动、高并发、低内存
  • 安装配置:各系统安装、配置文件结构
  • 反向代理:proxy_pass、Header 修改、WebSocket 支持
  • 负载均衡:Round Robin、Least Connections、IP Hash、健康检查
  • 缓存优化:proxy_cache、浏览器缓存、Cache Purge
  • SSL/TLS:Let's Encrypt、HSTS、TLS 1.3、OCSP Stapling
  • 安全加固:隐藏版本、限流、防注入、Rate Limiting
  • 性能调优:worker 优化、连接数、缓冲区、超时
  • Gzip/Brotli:压缩优化、预压缩
  • 日志管理:自定义格式、日志切割、分析工具

🚀 未来展望

Nginx 生态正在快速演进,值得关注的方向:

  • Nginx Unit:动态应用服务器(支持 Node.js、Python、Go)
  • Nginx Amplify:SaaS 监控平台(免费版可用)
  • QUIC/HTTP3:Nginx 1.25+ 实验性支持
  • Envoy:云原生代理(与 Nginx 互补)
  • AI 优化:智能负载均衡、自动调优