在CentOS中優化Nginx的性能是一個多層次的過程,涉及到配置優化、操作系統調整、以及硬件資源的配置。以下是一些關鍵的優化技巧:
文件描述符限制:
/etc/sysctl.conf
文件,增加以下行:fs.file-max = 10000000
fs.nr_open = 10000000
sysctl -p
TCP連接隊列長度:
/etc/sysctl.conf
文件,增加以下行:net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
臨時端口范圍:
/etc/sysctl.conf
文件,增加以下行:net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.ip_local_reserved_ports = 8080,8081,9000-9010
工作進程:
worker_processes
為CPU核心數:worker_processes auto;
工作進程連接數:
worker_connections
為每個工作進程可以處理的最大連接數,通常設置為1024或更高:events {
worker_connections 4096;
}
啟用KeepAlive:
http {
keepalive_timeout 65;
}
Gzip壓縮:
http {
gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xmlrss text/javascript;
}
緩存靜態資源:
location ~* \.(jpg|jpeg|png|gif|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
負載均衡:
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
狀態監控:
nginx-module-vts
模塊收集Nginx狀態信息,并結合 htop
監控工具實時監控服務器性能指標。日志分析:
通過上述優化技巧,可以顯著提升Nginx在CentOS上的性能,確保服務器能夠高效處理大量請求,同時降低系統延遲和資源消耗。