温馨提示×

centos nginx资源占用优化

小樊
102
2025-02-13 09:27:02
栏目: 智能运维

优化Nginx在CentOS上的资源占用可以从多个方面入手,包括内核参数调整、Nginx配置优化、文件描述符限制、静态资源服务等。以下是详细的优化措施:

内核参数优化

  • 调整TCP连接参数

    • net.ipv4.tcp_max_tw_buckets = 6000:减少TIME_WAIT状态的连接占用。
    • net.ipv4.tcp_tw_recycle = 1(官方不建议修改):快速回收TIME_WAIT状态的连接。
    • net.ipv4.tcp_tw_reuse = 1:启用TIME_WAIT状态的连接重用。
    • net.ipv4.tcp_syncookies = 1:防止SYN flood攻击。
  • 调整文件描述符和连接数限制

    • 编辑 /etc/sysctl.conf 文件,增加如下内容:

      fs.file-max = 10000000 fs.nr_open = 10000000 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 
    • 应用配置:

      sysctl -p 

Nginx配置优化

  • 调整工作进程和连接数

    • worker_processes auto;:根据CPU核心数自动设置工作进程数。
    • worker_connections 1024;:每个工作进程最多处理1024个连接。
  • 启用高效传输模式

    • sendfile on;:启用sendfile,提升传输效率。
    • tcp_nopush on;:对于大文件传输,采用tcp_nopush多个包一起发送。
  • 启用Gzip压缩

    • 减少网络传输消耗:

      http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; } 
  • 静态资源缓存

    • 缓存静态文件,减少对后端服务器的请求:

      server { location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ { expires 30d; access_log off; } } 
  • 启用HTTP/2协议

    • 利用多路复用和头部压缩提高页面加载速度:

      server { listen 443 ssl http2; } 
  • 优化SSL/TLS

    • 合理配置SSL/TLS协议,提高安全性和性能:

      server { ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH; ssl_prefer_server_ciphers on; } 

其他优化措施

  • 限制请求速率和连接数

    • 防止恶意请求占用资源:

      limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; location / { limit_req zone=one burst=5; } 
  • 监控和日志管理

    • 使用工具如Prometheus + Grafana、Zabbix等监控磁盘空间,并设置告警阈值。

通过这些优化措施,可以显著降低Nginx在CentOS上的资源占用,提高其性能和稳定性。根据实际应用场景,可以灵活调整配置,以达到最佳效果。

0