centos

centos nginx性能瓶颈怎么破

小樊
45
2025-10-11 03:23:11
栏目: 智能运维

一、系统级基础优化(解决底层瓶颈)

1. 调整内核参数(关键步骤)

编辑/etc/sysctl.conf,添加以下配置以优化网络连接处理能力:

net.core.somaxconn = 65535       # 监听队列最大长度(避免连接被拒绝)
net.ipv4.tcp_max_syn_backlog = 65535  # SYN队列长度(应对高并发连接请求)
net.ipv4.tcp_tw_reuse = 1        # 复用TIME-WAIT状态的连接(减少资源占用)
net.ipv4.tcp_fin_timeout = 30    # TIME-WAIT状态超时时间(快速释放连接)
net.ipv4.tcp_max_tw_buckets = 180000  # TIME-WAIT连接数上限(防止内存耗尽)
net.ipv4.tcp_slow_start_after_idle = 0  # 禁用慢启动(提升TCP传输效率)

应用配置:sysctl -p

2. 调整文件描述符限制

编辑/etc/security/limits.conf,为Nginx用户(通常为nginxwww-data)设置足够高的文件描述符限制:

* soft nofile 65535  # 软限制(临时生效)
* hard nofile 65535  # 硬限制(永久生效)

重启系统或重新登录使配置生效。

二、Nginx配置优化(核心性能提升)

1. 工作进程与连接数调优

2. 启用高效传输与压缩

3. 静态文件缓存

对静态资源(图片、CSS、JS等)设置过期时间,减少客户端重复请求:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
    expires 30d;  # 缓存30天
    add_header Cache-Control "public, no-transform";  # 允许公共缓存
}

4. 反向代理与负载均衡

5. SSL/TLS优化(若启用HTTPS)

三、监控与持续优化(避免瓶颈复发)

以上优化措施需根据实际业务场景(如高并发静态网站、动态API服务等)调整参数,建议每次修改配置后通过压力测试(如ab -n 10000 -c 1000 http://yourdomain.com/)验证效果。

0
看了该问题的人还看了