首页主机资讯Ubuntu上Nginx性能优化有哪些技巧

Ubuntu上Nginx性能优化有哪些技巧

时间2025-11-17 21:36:03发布访客分类主机资讯浏览777
导读:Ubuntu上Nginx性能优化实用技巧 一 基础配置优化 调整并发模型:将worker_processes设为与CPU核心数一致(如4核设为4),充分利用多核;在events中提升worker_connections(如4096)以扩大...

Ubuntu上Nginx性能优化实用技巧

一 基础配置优化

  • 调整并发模型:将worker_processes设为与CPU核心数一致(如4核设为4),充分利用多核;在events中提升worker_connections(如4096)以扩大并发连接容量。示例:
    worker_processes auto;
      # 或设为 CPU 核心数
    events {
        
        worker_connections 4096;
        
        multi_accept on;
    
    }
        
    
  • 开启高效传输:启用**sendfile on; 减少用户态与内核态拷贝;与tcp_nopush on; **配合,在开启sendfile时尽量合并包发送,提高带宽利用率。
  • 长连接复用:在http/server/location中配置keepalive_timeout 65; keepalive_requests 100; ,复用后端或客户端连接,降低握手开销。

二 内容传输与压缩

  • 启用Gzip压缩:对文本类资源进行压缩以减少传输体积,建议适度提高压缩级别并限制最小压缩长度。示例:
    gzip on;
        
    gzip_comp_level 5;
        
    gzip_min_length 256;
        
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
        
    gzip_vary on;
        
    gzip_proxied any;
    
    
  • 开启静态资源缓存与协商:启用ETag以加速缓存验证;对静态文件设置合适的Cache-Control/Expires头,减少重复传输。

三 反向代理与缓存

  • 反向代理缓存:为后端动态内容设置缓存区,降低后端压力、提升响应。示例:
    http {
        
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
    
        server {
    
            location / {
        
                proxy_cache my_cache;
        
                proxy_pass http://backend;
    
            }
    
        }
    
    }
        
    
  • 连接复用与头部优化:为代理连接启用keepalive(如upstream中配置keepalive 32; ),减少频繁建连;按需设置**proxy_buffering on; **与合适的缓冲参数,平滑突发流量。

四 启用HTTP/2与TLS

  • 开启HTTP/2:在listen 443 ssl http2; 中启用HTTP/2以多路复用提升并发与首包速度;同时确保正确配置SSL/TLS证书(如Let’s Encrypt)。示例:
    server {
        
        listen 443 ssl http2;
        
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
        # 其他SSL安全参数...
    }
        
    
  • 说明:HTTP/2通常运行在TLS之上,启用后可在同一连接并行传输多个请求,减少队头阻塞。

五 系统与运维实践

  • 文件描述符限制:提升进程可打开的文件描述符上限,编辑**/etc/security/limits.conf**:
    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
    
  • TCP/IP栈优化:按需调整内核网络参数(示例为通用高并发思路,生产环境请结合压测微调):
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_max_syn_backlog = 4096
    net.core.somaxconn = 4096
    
  • 日志与观测:实时查看error.log定位瓶颈与异常(如sudo tail -f /var/log/nginx/error.log);使用GoAccess分析访问日志,示例:
    sudo apt install goaccess
    goaccess /var/log/nginx/access.log -f COMMON -o html >
         /var/www/html/goaccess.html
    
  • 平滑生效与压测:修改配置后使用sudo systemctl reload nginx平滑重载;用httperf等工具进行压测与回归验证,逐步调优参数。

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


若转载请注明出处: Ubuntu上Nginx性能优化有哪些技巧
本文地址: https://pptw.com/jishu/749368.html
Nginx在Ubuntu中的安全设置指南 Nginx在Ubuntu中如何配置反向代理

游客 回复需填写必要信息