Nginx性能優化實戰:手把手教你提升十倍性能!
1. worker_processes(工作進程數)
這是 Nginx 配置中最基礎也最重要的參數,它決定了 Nginx 啟動多少個工作進程來處理請求。
Nginx 采用事件驅動模型,單個 worker 進程效率極高。
將進程數匹配核心數,可以避免進程間的 CPU 競爭和頻繁的上下文切換。
最新文章-mikechen
Nginx 會自動檢測服務器的 CPU 核心數,并為每個核心啟動一個工作進程,Nginxworker_processes auto;
2. worker_connections(單個進程最大連接數)
該參數定義了,每個 worker 進程可以同時打開的最大連接數。
配置目標: 提高服務器的總并發能力。
推薦實戰: 建議設置為一個較大的值,例如 10240 或更高。
events { worker_connections 10240; }
注意: 理論上的最大并發連接數是 worker_processes * worker_connections。
此外,此值不能超過操作系統對單個進程最大文件描述符的限制。如果需要更高的值,您可能需要先調整系統的 ulimit -n。
3. Keepalive 連接配置(長連接)
Keepalive(或長連接),允許客戶端在一個 TCP 連接上發送多個 HTTP 請求。
從而減少了大量的連接建立和關閉的開銷,比如:TCP 三次握手、和四次揮手。
關鍵參數: keepalive_timeout 和 keepalive_requests。
推薦實戰:=
keepalive_timeout:設置一個合理的超時時間,如 15s – 30s;
keepalive_requests:在一個連接上允許處理的最大請求數。
調高此值可以減少重新連接的頻率,推薦 1000 或更高。
http { keepalive_timeout 20s; keepalive_requests 1000; }
4. Gzip 壓縮
啟用 Gzip 壓縮可以顯著減小 HTML、CSS、JavaScript 等文本類文件的傳輸體積,從而加速頁面加載時間并節省帶寬。
關鍵參數: gzip on; 和 gzip_comp_level。
推薦實戰:Nginx
gzip on 啟用壓縮。
gzip_comp_level:壓縮級別(1-9)。推薦使用中間值 5 或 6,以在 CPU 消耗和壓縮率之間取得平衡。
只對文本類型文件進行壓縮,并設置一個最小壓縮文件大?。ㄈ?nbsp;gzip_min_length 1k)。
比如:
http { gzip on; gzip_comp_level 6; gzip_min_length 1k; gzip_types text/plain text/css application/json application/javascript;}5. 靜態文件傳輸優化(sendfile 與 tcp_nopush)
這兩個參數協同工作,可以優化 Nginx 從磁盤讀取和傳輸靜態文件的過程,有效減少 CPU 開銷和網絡延遲。
推薦實戰: 同時開啟這兩個指令:
sendfile on: 啟用操作系統的 sendfile() 系統調用。
在內核態完成文件傳輸,實現零拷貝,這對傳輸大文件非常高效。
tcp_nopush on: 必須在 sendfile on 的情況下開啟。
它會指示 Nginx 將響應頭和文件數據合并成一個或多個滿載的數據包后再發送,提高網絡效率。





























