温馨提示×

centos lnmp下nginx优化策略

小樊
54
2025-09-05 23:59:12
栏目: 智能运维

以下是CentOS下LNMP环境中Nginx的优化策略:

一、基础性能优化

  • 工作进程配置
    worker_processes auto; // 自动匹配CPU核心数
    worker_cpu_affinity auto; // 绑定CPU核心(Linux专用)
    worker_rlimit_nofile 65535; // 提升单个进程最大文件描述符数
  • 事件模型优化
    use epoll; // 启用Linux高效事件模型
    multi_accept on; // 允许同时接受多个连接
    worker_connections 10240; // 单进程最大连接数(需结合系统ulimit调整)

二、HTTP传输优化

  • 高效传输
    sendfile on; // 启用零拷贝文件传输
    tcp_nopush on; // 优化数据包发送
    tcp_nodelay on; // 禁用Nagle算法,降低延迟
  • 缓存与压缩
    静态资源缓存:
    location ~* \.(jpg|css|js)$ {  
        expires 365d;  
        add_header Cache-Control "public, immutable";  
    }  
    
    Gzip压缩:
    gzip on;  
    gzip_types text/css application/javascript text/xml;  
    gzip_comp_level 6;  
    

三、安全与访问控制

  • 隐藏敏感信息
    server_tokens off; // 隐藏Nginx版本
    禁止访问敏感文件:
    location ~ /\.(ht|git|svn) {  
        deny all;  
    }  
    
  • SSL优化(如启用HTTPS)
    ssl_protocols TLSv1.2 TLSv1.3;  
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';  
    ssl_prefer_server_ciphers on;  
    ssl_session_cache shared:SSL:10m;  
    ssl_session_timeout 10m;  
    

四、动态资源优化(PHP场景)

  • PHP-FPM配置
    调整pm.max_children(建议设置为CPU核心数×2+1),避免进程频繁创建销毁。
    启用OpCache缓存PHP字节码,减少重复编译开销。
  • 反向代理优化
    location ~ \.php$ {  
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;  
        fastcgi_buffer_size 128k;  
        fastcgi_buffers 4 256k;  
        fastcgi_busy_buffers_size 256k;  
        fastcgi_read_timeout 300;  
    }  
    

五、系统级优化

  • 内核参数调整
    编辑/etc/sysctl.conf,添加:
    net.core.somaxconn = 65535  
    net.ipv4.tcp_max_syn_backlog = 65535  
    vm.swappiness = 0 # 禁用交换分区(服务器内存充足时)  
    
  • 文件系统优化
    使用XFS文件系统,调整挂载参数(如noatime,nodiratime)减少磁盘I/O。

六、监控与调优工具

  • 使用nginx -t检查配置语法,nginx -s reload重新加载配置。
  • 通过tophtop监控CPU/内存使用,ss -tulnp查看网络连接状态。
  • 日志分析:定期查看access_logerror_log,定位性能瓶颈。

:优化需结合服务器硬件配置(如CPU/内存/磁盘类型)和实际业务场景调整,建议先在测试环境验证效果后再应用到生产环境。

0