Nginx性能优化与监控

一、核心优化方向

  1. worker 进程配置

    • worker_processes auto;:自动匹配 CPU 核心数
    • worker_connections 10240;:单进程最大连接数(需配合系统 ulimit)
    • worker_rlimit_nofile 65535;:提升最大文件句柄数
  2. 事件模型优化

    nginx

    复制代码
    events {
        use epoll;
        multi_accept on;
        accept_mutex off;
    }
  3. TCP / 网络优化

    nginx

    复制代码
    http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        keepalive_requests 1000;
    }
  4. 压缩优化

    nginx

    复制代码
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_min_length 1k;
  5. 静态资源缓存

    nginx

    复制代码
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, max-age=2592000";
    }
  6. 隐藏版本、提升安全

    nginx

    复制代码
    server_tokens off;

二、系统层面优化(配合 Nginx)

  1. 修改 /etc/security/limits.conf

    plaintext

    复制代码
    nginx soft nofile 65535
    nginx hard nofile 65535
  2. 内核参数 /etc/sysctl.conf

    plaintext

    复制代码
    net.core.somaxconn = 65535
    net.core.netdev_max_backlog = 65535
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30

    执行:sysctl -p


三、监控指标与工具

1. 关键监控指标

  • 活跃连接数、等待连接数
  • 请求 QPS、响应时间
  • 状态码:2xx/3xx/4xx/5xx 占比
  • CPU、内存、句柄、磁盘 I/O
  • upstream 后端健康状态

2. 内置状态页

nginx

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

访问:http://ip/nginx_status

3. 常用监控工具

  • nginx -t:配置语法检查
  • nginx -s reload:平滑重载
  • netstat -anp | grep nginx / ss -s
  • tophtopiostatdstat
  • 日志分析:awkgoaccess
  • 接入 Prometheus + Grafana(nginx-vts-exporter)

四、日志与排错

  1. 访问日志:记录请求、状态、耗时、UA、来源
  2. 错误日志:定位 upstream、权限、配置、端口冲突
  3. 常用排查:
    • 502:后端服务挂 / 超时 / 不可达
    • 504:超时
    • 403:权限 / 目录索引 / IP 限制
    • 404:路径 / 路由 / 文件不存在
相关推荐
SkyWalking中文站6 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ9 小时前
Kubeneters HA Cluster部署
运维
江华森14 小时前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森14 小时前
Matplotlib 数据绘图基础入门
运维
江华森14 小时前
NumPy 数值计算基础入门
运维
你听得到112 天前
用户说 App 卡,但说不清在哪?我把 Flutter 监控 SDK 升级成了链路观测工作台
前端·flutter·性能优化
乘云数字DATABUFF5 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
亲亲小宝宝鸭5 天前
前端性能监控:web-vitals
前端·性能优化·监控
荣--7 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森7 天前
动手实战学 Docker — 从零到集群编排完全指南
运维