在CentOS下优化Nginx的性能是一个多层次的过程,涉及到配置优化、操作系统调整、以及硬件资源的配置。以下是一些关键的优化技巧:
内核参数优化:
/etc/sysctl.conf
文件,增加以下行:fs.file-max = 10000000
fs.nr_open = 10000000
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syncookies = 1
使配置生效:sysctl -p
网络优化:
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
调整工作进程和连接数:
编辑 /etc/nginx/nginx.conf
文件,设置 worker_processes
为CPU核心数:
worker_processes auto;
设置每个工作进程的最大连接数:
events {
worker_connections 1024;
}
启用KeepAlive:
http {
keepalive_timeout 65;
}
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|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
启用HTTP/2协议:
server {
listen 443 ssl http2;
}
优化SSL/TLS配置:
server {
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
}
使用多核处理器:
multi_accept
指令让每个工作进程尽可能多地接受连接请求:events {
multi_accept on;
}
调整缓冲区大小:
http
段添加以下配置调整缓冲区大小:http {
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
优化日志记录:
http {
open_log_file_cache max=1000 inactive=20s min_uses=2;
}
配置反向代理:
proxy_pass
指令将请求转发到后端服务器:server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用文件缓存:
proxy_cache
或 fastcgi_cache
模块缓存频繁请求的静态资源或动态内容。监控和日志优化:
在进行任何更改之前,请确保备份配置文件,并进行适当的测试和性能监测,以确保所做的优化不会导致任何不良影响。