温馨提示×

LNMP环境下Nginx配置技巧

小樊
56
2025-08-31 07:19:20
栏目: 编程语言

以下是LNMP环境下Nginx的核心配置技巧,涵盖性能、安全及优化方向:

一、基础性能优化

  • 工作进程配置
    worker_processes auto; // 自动匹配CPU核心数
    worker_cpu_affinity auto; // 绑定CPU核心(Linux专用),减少进程竞争
    worker_rlimit_nofile 65535; // 提升单个进程可打开的文件描述符数

  • 事件模型优化
    events { use epoll; worker_connections 10240; multi_accept on; } // Linux下启用epoll高并发模型

二、HTTP传输优化

  • 高效传输指令
    sendfile on; tcp_nopush on; tcp_nodelay on; // 启用零拷贝传输、减少延迟
    keepalive_timeout 65; keepalive_requests 1000; // 长连接超时与最大请求数

  • 静态资源缓存

    location ~* \.(jpg|css|js)$ {  
        expires 365d;  
        add_header Cache-Control "public, no-transform";  
    }  
    ``` // 静态文件缓存365天,减少重复请求  
    
    
  • Gzip压缩

    gzip on;  
    gzip_types text/css application/javascript text/xml;  
    gzip_comp_level 6;  
    ``` // 压缩文本类资源,降低传输体积  
    
    

三、PHP-FPM协同优化

  • 连接池配置
    fastcgi_pass unix:/run/php/php7.4-fpm.sock; // 根据PHP版本调整
    fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; // 缓冲区大小,避免频繁IO
    fastcgi_read_timeout 300; // PHP脚本超时时间

四、安全加固

  • 基础防护
    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握手性能  
    
    

五、高级优化技巧

  • 负载均衡(多后端场景)

    upstream backend {  
        least_conn; // 动态选择连接数最少的后端  
        server 192.168.1.1:9000;  
        server 192.168.1.2:9000;  
    }  
    ``` // 适用于高并发流量分发  
    
    
  • 微缓存(高流量场景)

    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=24h;  
    location / {  
        proxy_cache STATIC;  
        proxy_cache_valid 200 1m; // 缓存200状态码响应1分钟  
    }  
    ``` // 缓存动态内容,减轻后端压力  
    
    

六、配置验证与部署

  1. 语法检查nginx -t // 修改后务必测试配置正确性
  2. 平滑重启systemctl reload nginx // 避免服务中断
  3. 监控工具:结合tophtop监控资源使用,或使用Prometheus+Grafana实现可视化监控

注意:所有配置需根据服务器硬件(CPU/内存/磁盘类型)和业务场景调整,建议先在测试环境验证后再部署到生产环境。

0