首页主机资讯怎样配置Debian Nginx提高服务器性能

怎样配置Debian Nginx提高服务器性能

时间2026-01-21 08:52:03发布访客分类主机资讯浏览970
导读:Debian 上提升 Nginx 性能的实用配置清单 一 系统层优化 文件句柄与进程限制 在 /etc/security/limits.conf 提升软硬限制,例如: 全局:* soft nofile 200000;* hard n...

Debian 上提升 Nginx 性能的实用配置清单


一 系统层优化

  • 文件句柄与进程限制
    • /etc/security/limits.conf 提升软硬限制,例如:
      • 全局:* soft nofile 200000;* hard nofile 500000
      • 或仅对 Nginx 用户(如 www-data)设置
    • /etc/pam.d/common-session 确认包含:session required pam_limits.so
    • 在 Nginx 主配置设置:worker_rlimit_nofile 200000; ,使 worker 进程突破默认句柄上限
  • 内核网络参数(/etc/sysctl.conf)
    • 提升连接容量与缩短回收时间:
      • fs.file-max = 1000000
      • net.core.somaxconn = 65535
      • net.core.netdev_max_backlog = 250000
      • net.ipv4.tcp_max_syn_backlog = 65535
      • net.ipv4.ip_local_port_range = 1024 65535
      • net.ipv4.tcp_tw_reuse = 1
      • net.ipv4.tcp_fin_timeout = 15
    • 应用生效:sysctl -p
  • 说明
    • 上述数值可按业务与内核版本微调,目标是提高 somaxconnbacklog 与端口复用能力,降低 TIME_WAIT 占用。

二 Nginx 核心配置

  • 进程与连接
    • 建议:worker_processes auto; (自动按 CPU 核心数启动),或设为 CPU 核心数;必要时可尝试 2×核心数 做压测对比
    • 提升并发:worker_connections 32768; (与系统句柄上限匹配)
    • 事件模型:use epoll; multi_accept on;
  • 传输与连接复用
    • 启用零拷贝与合并发送:sendfile on; tcp_nopush on; tcp_nodelay on;
    • 长连接复用:keepalive_timeout 65; keepalive_requests 10000;
  • 超时与缓冲
    • 合理收紧:client_body_timeout 20; client_header_timeout 20; send_timeout 30;
    • 提升大响应处理能力(反向代理/FCGI 场景):
      • fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
      • fastcgi_connect_timeout 60s; fastcgi_send_timeout 180s; fastcgi_read_timeout 180s;
  • 静态资源与浏览器缓存
    • 对图片、样式、脚本等设置长期缓存:
      • location ~* .(jpg|jpeg|png|gif|css|js|ico|svg)$ {
        • expires 30d;
        • add_header Cache-Control “public, no-transform”;
        • }
  • 压缩与文件句柄缓存
    • 启用压缩(按需调整类型与阈值):
      • gzip on; gzip_vary on; gzip_min_length 10240;
      • gzip_proxied expired no-cache no-store private auth;
      • gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
    • 打开文件句柄缓存(减少系统调用):
      • open_file_cache max=200000 inactive=20s;
      • open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;
  • 安全与限流(减轻滥用带来的性能劣化)
    • 速率限制(示例:基于 IP 的 10r/s,突发 20):
      • limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
      • limit_req zone=one burst=20 nodelay;
    • 按需使用 allow/deny 做访问控制。

三 反向代理与缓存

  • 页面与代理缓存
    • 启用 proxy_cache_pathfastcgi_cache_path(示例):
      • proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:100m inactive=60m use_temp_path=off;
      • fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=DYNAMIC:100m inactive=60m;
    • 在 location 中使用:
      • proxy_cache STATIC; proxy_cache_valid 200 1h; add_header X-Cache $upstream_cache_status;
      • fastcgi_cache DYNAMIC; fastcgi_cache_valid 200 1h;
  • 负载均衡策略
    • upstream 中按需选择 轮询(默认)/最少连接(least_conn)/IP 哈希(ip_hash) 等策略,分散后端压力。

四 PHP‑FPM 与后端协同优化

  • 进程模型与内存规划
    • 结合内存与单进程占用选择 pm = dynamic,合理设置 pm.max_children / pm.start_servers / pm.min_spare_servers / pm.max_spare_servers
    • 开启 pm.max_requests 做内存泄漏的周期性回收(如 10000
  • 超时与缓冲对齐
    • 与 Nginx 的 fastcgi 超时保持一致(如 60s/180s),避免链路中某一段过早断开
  • 静态资源分离
    • 将图片、CSS、JS 等由 Nginx 直接服务,避免进入 PHP‑FPM 处理路径。

五 验证与监控

  • 配置校验与热加载
    • 校验:nginx -t
    • 生效:systemctl reload nginx
  • 实时监控
    • 资源与连接:top/htop、vmstat、ss -s、netstat -n | awk ‘/^tcp/ { ++S[$NF]} END { for(a in S) print a, S[a]} ’
    • 压测工具:wrk2、ab(逐步加压,观察 P95/P99 延迟与错误率)
  • 日志与指标
    • 使用 access_log/error_log 定位慢请求与异常;必要时自定义日志格式,加入 $request_time、$upstream_response_time 等字段
    • 结合 open_file_cache 命中率与缓存命中率评估优化成效。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样配置Debian Nginx提高服务器性能
本文地址: https://pptw.com/jishu/788362.html
k8s在centos上的负载均衡 dmesg日志中的USB设备连接如何解读

游客 回复需填写必要信息