参考资料

  1. 如何设置Nginx的Gzip压缩?
  2. nginx 查看配置文件
  3. 忽略非错误信息 nginx -q详细说明以及案例
  4. 是否有自动化的安全检测nginx工具?
  5. Nginx的常见错误及解决方案
  6. nginx启动命令和停止命令
  7. nginx 配置多个server
  8. 如何结合WAF使用Nginx提高安全性?

Nginx支持高并发的核心机制和配置示例:

  1. 事件驱动架构

  • 使用epoll(Linux)/kqueue(FreeBSD)等高效I/O多路复用机制

  • 非阻塞式处理请求

  1. 多进程模型

worker_processes auto;  # 自动匹配CPU核心数
worker_rlimit_nofile 100000;  # 每个worker能打开的文件描述符数量
  1. 连接优化配置

events {
    worker_connections 10240;  # 每个worker的最大连接数
    use epoll;  # Linux系统使用epoll
    multi_accept on;  # 同时接受多个连接
}

http {
    sendfile on;  # 零拷贝传输
    tcp_nopush on;  # 优化数据包发送
    tcp_nodelay on;  # 禁用Nagle算法
    keepalive_timeout 65;  # 长连接超时
    keepalive_requests 1000;  # 单个长连接最大请求数
}
  1. 缓冲区优化

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 8k;
  1. 静态文件缓存

open_file_cache max=200000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
  1. 负载均衡示例

upstream backend {
    least_conn;  # 最少连接算法
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
    keepalive 32;  # 保持的连接池大小
}
  1. 并发限制保护

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;  # 单个IP最大连接数