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配置,避免缓冲区过大
相关推荐
2401_834636998 小时前
Linux 负载均衡全实战:Nginx+HAProxy+LVS 从原理到落地
linux·nginx·负载均衡
问心无愧051313 小时前
ctf show web入门111
android·前端·笔记
杨了个杨898216 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
和平宇宙18 小时前
AI笔记005. hermes-DeepSeek V4 Pro, 128K上下文引发的探索
前端·人工智能·笔记
十月的皮皮18 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
cmes_love18 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
JohnnyDeng9418 小时前
【鸿蒙】ArkUI 列表性能优化:LazyForEach 与组件复用深度解析
性能优化·harmonyos·arkts·鸿蒙·arkui
Cloud_Shy61819 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
问心无愧051319 小时前
ctf show web入门110
前端·笔记
ha_lydms20 小时前
AnalyticDB分区、分布键性能优化
android·大数据·分布式·性能优化·分布式计算·分区·analyticdb