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配置,避免缓冲区过大
相关推荐
鱼鳞_11 小时前
Java学习笔记_Day23(HashMap)
java·笔记·学习
sheeta199811 小时前
LeetCode 每日一题笔记 日期:2026.04.07 题目:2069.模拟行走机器人二
笔记·leetcode·机器人
不想说话的麋鹿11 小时前
「性能优化」《从10秒到100ms:大文件上传极致优化实战(切片/秒传/断点续传全方案)》
前端·vue.js·性能优化
代码旅人ing11 小时前
数组算法刷题指南
笔记
南风知我意95711 小时前
【重构思维】用位运算做权限管理
前端·面试·职场和发展·性能优化·重构
江湖有缘11 小时前
基于华为openEuler系统部署Memory笔记管理工具
笔记
小陈phd11 小时前
多模态大模型学习笔记(三十三)——基于YOLOv11的安全帽佩戴检测算法
笔记·学习·yolo
雨浓YN11 小时前
OPC DA 通讯开发笔记
windows·笔记
taoqick11 小时前
rubric系列论文粗读笔记
笔记
航Hang*11 小时前
第2章:进阶Linux系统——第8节:配置与管理MariaDB服务器
linux·运维·服务器·数据库·笔记·学习·mariadb