在CentOS上優化Nginx的性能可以通過多種方式實現,以下是一些關鍵的優化技巧:
worker_processes
為 CPU 核心數。例如,如果服務器有8個CPU核心,可以設置為8。worker_processes auto;
表示Nginx會根據CPU核心數自動分配工作進程數。worker_connections
。通常設置為1024或更高。events { worker_connections 1024; use epoll; }
使用 epoll 事件模型(Linux)。ngx_http_gzip_module
模塊啟用 Gzip 壓縮,減少傳輸數據量,提高響應速度。http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
server {
listen 443 ssl http2;
}
server {
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
}
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
echo "fs.file-max = 65535" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 65535" >> /etc/sysctl.conf
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
proxy_cache
或 fastcgi_cache
緩存后端響應,減少對數據庫或應用服務器的請求。http {
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 30m;
proxy_cache_valid 404 1m;
}
}
}
error_log /var/log/nginx/error.log crit;
access_log /var/log/nginx/access.log main;
通過上述優化技巧,可以顯著提升Nginx在CentOS上的性能。根據具體需求,可以進一步調整和優化配置。