Nginx性能优化与监控笔记

Nginx 性能优化核心笔记

一、核心优化维度

表格

优化维度 关键参数 / 操作 配置示例 优化说明
连接处理优化 worker_processes worker_processes auto; 等于 CPU 核心数,充分利用硬件资源
worker_connections worker_connections 65535; 单个 worker 最大连接数,影响并发能力
use epoll events { use epoll; } 高效事件驱动模型,适配高并发场景
缓存优化 proxy_cache_path proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; 定义缓存目录、层级和空间限制
proxy_cache location ~ \.js$ { proxy_cache my_cache; } 针对特定资源启用缓存
缓冲区优化 client_body_buffer_size client_body_buffer_size 128k; 客户端请求体缓冲区大小
proxy_buffer_size proxy_buffer_size 4k; 代理响应缓冲区大小
超时控制 keepalive_timeout keepalive_timeout 65 60; 长连接超时时间,减少握手开销
proxy_read_timeout proxy_read_timeout 30s; 代理后端响应超时,避免阻塞
二、实战配置模板

nginx

复制代码
# 全局配置
worker_processes auto;
worker_rlimit_nofile 65535;  # 最大打开文件数

events {
    use epoll;
    worker_connections 65535;
    multi_accept on;  # 尽可能多地接收连接
}

http {
    # 缓存配置
    proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=STATIC_CACHE:100m inactive=7d max_size=50g;
    
    server {
        listen 80 backlog=1024;  # 监听队列长度
        server_name example.com;
        
        # 静态资源缓存
        location ~* \.(jpg|png|js|css)$ {
            proxy_cache STATIC_CACHE;
            proxy_cache_valid 200 304 12h;
            proxy_cache_min_uses 3;
            expires 7d;
        }
        
        # 反向代理配置
        location /api/ {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            
            # 代理缓冲区优化
            proxy_buffering on;
            proxy_buffer_size 8k;
            proxy_buffers 4 32k;
        }
    }
}
三、监控体系搭建
1. 内置状态监控

启用stub_status模块获取基础监控数据:

nginx

复制代码
server {
    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}

核心指标说明

  • Active connections:当前活跃连接数
  • accepts:总接受连接数
  • handled:总处理连接数
  • requests:总请求数
2. 第三方监控集成

表格

监控工具 配置方式 适用场景
Prometheus + Grafana 编译安装nginx-vts-module,配置 HTTP 接口 大规模集群,可视化告警
Zabbix 导入官方模板,监控进程、端口、响应时间 企业级监控,告警联动
Prometheus Node Exporter 采集系统级指标(CPU、内存、磁盘 IO) 结合 Nginx 指标做系统关联分析
3. 关键监控指标
  • 连接指标accepts/handled比率、worker_connections使用率
  • 请求指标requests秒均请求数、5xx错误率
  • 缓存指标cache_hit_ratio(缓存命中率)、cache_miss次数
  • 性能指标request_time(请求响应时间)、upstream_response_time(后端响应时间)
四、优化实战技巧
  1. 静态资源分离:将静态资源部署至 CDN,减轻 Nginx 压力
  2. GZIP 压缩 :启用gzip on;压缩文本资源,减少传输体积
  3. SSL 优化 :配置ssl_protocols TLSv1.2 TLSv1.3;,启用 SSL 缓存
  4. 负载均衡 :配置upstream backend { server 192.168.1.1; server 192.168.1.2; },实现流量分发
  5. 日志优化:关闭不必要的访问日志,仅记录错误日志,减少 IO 开销
五、常见问题排查
  1. 高并发连接溢出 :调整worker_connectionsworker_rlimit_nofile
  2. 后端响应慢 :优化proxy_read_timeout,检查后端服务性能
  3. 缓存命中率低 :调整proxy_cache_min_uses,扩大缓存空间
  4. 内存占用过高 :检查proxy_buffers配置,避免缓冲区过大
相关推荐
2601_948606182 小时前
LaTeX学习笔记:开场白与索引
笔记·学习
罗罗攀2 小时前
PyTorch学习笔记|张量的索引分片、合并和维度调整
人工智能·pytorch·笔记·python·学习
John_ToDebug2 小时前
WaitableEvent 跨线程等待的死锁陷阱
windows·笔记·死锁
小璐资源网2 小时前
《Nginx缓存配置:浏览器缓存与服务器缓存实战》
服务器·nginx·缓存
RSFeegg2 小时前
【AI Agent 学习笔记 task1】Day2:初识智能体
人工智能·笔记·学习
小陈phd2 小时前
多模态大模型学习笔记(十八)——基于 DeepSeek-7B 的 LoRA 微调训练实战教程
人工智能·笔记·学习
炸炸鱼.2 小时前
Nginx 性能调优与深度监控实战指南
运维·nginx
朗迹 - 张伟2 小时前
UE5.7 基础入门学习笔记
笔记·学习·ue5
不想看见4042 小时前
Find All Numbers Disappeared in an Array数组--力扣101算法题解笔记
笔记·算法·leetcode