在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上的性能。根据具体需求,可以进一步调整和优化配置。