溫馨提示×

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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女