linux

nginx性能调优有哪些技巧

小樊
46
2025-09-03 03:26:25
栏目: 编程语言

以下是Nginx性能调优的核心技巧,涵盖系统、配置、缓存等多方面:

一、系统层面优化

  1. 调整内核参数
    • 增大文件描述符限制:fs.file-max=1000000,避免连接数受限。
    • 优化TCP参数:net.core.somaxconn=65535(连接队列长度)、tcp_tw_reuse=1(复用TIME_WAIT连接)。
  2. 硬件与资源分配
    • 选择多核CPU+SSD存储,提升并发处理和IO效率。

二、Nginx配置优化

  1. 工作进程与连接数
    • worker_processes auto;(按CPU核心数自动配置)。
    • worker_connections 10240;(单进程最大连接数,需结合系统限制)。
    • 启用epoll事件模型(Linux)和multi_accept on,提升连接处理效率。
  2. 高效传输与缓存
    • 启用sendfile on(零拷贝传输)、tcp_nopush on(优化数据包发送)。
    • 静态文件缓存:expires 30d; + open_file_cache(减少磁盘IO)。
  3. 压缩与协议优化
    • 启用Gzip压缩:gzip on; gzip_types text/css application/json;,压缩级别建议6。
    • 支持HTTP/2:listen 443 ssl http2;,提升多路复用效率。
  4. 超时与连接管理
    • 合理设置keepalive_timeout(建议30秒)、proxy_connect_timeout(避免后端超时)。
    • 限制单连接请求数:keepalive_requests 1000,防止资源耗尽。

三、高级优化技巧

  1. 负载均衡与流量分发
    • 使用upstream模块配置多后端服务器,结合least_conn(最少连接)算法均衡负载。
    • 启用连接池:proxy_http_version 1.1; proxy_set_header Connection "";
  2. 安全与监控
    • 隐藏Nginx版本:server_tokens off;,降低信息泄露风险。
    • 日志优化:关闭非必要日志或按需缓冲(access_log off;buffer=32k)。
  3. 动态内容优化
    • 对动态请求启用缓存(如proxy_cache),减少后端压力。
    • 限制请求频率:limit_req_zone + burst参数,防止恶意刷接口。

四、验证与调优工具

注意:每次修改配置后需执行nginx -t测试语法,生产环境建议灰度发布并逐步验证。

参考来源:

0
看了该问题的人还看了