优化Nginx在CentOS上的性能可从系统内核、Nginx配置、资源利用等方面入手,具体如下:
系统内核参数优化
调整TCP连接和文件描述符限制,编辑/etc/sysctl.conf:
net.ipv4.tcp_max_tw_buckets=6000 # 减少TIME_WAIT连接
net.ipv4.tcp_tw_reuse=1 # 启用TIME_WAIT重用
net.core.somaxconn=65535 # 增加连接队列长度
fs.file-max=10000000 # 提升最大文件描述符数
应用配置:sysctl -p。
Nginx进程与连接优化
worker_processes auto;。worker_connections 1024;。epoll事件模型(Linux专用):use epoll;。网络与传输优化
sendfile和tcp_nopush减少数据拷贝:http {
sendfile on;
tcp_nopush on;
}
```。
keepalive_timeout(建议30-60秒)减少连接开销:http {
keepalive_timeout 60s;
}
```。
缓存与压缩优化
location ~* \.(jpg|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
```。
http {
gzip on;
gzip_comp_level 6;
gzip_types text/css application/javascript;
}
```。
SSL/TLS优化
仅启用TLS 1.2/1.3,优化加密套件:
server {
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
}
```。
负载与安全优化
limit_req和limit_conn限制异常流量:limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;
location / {
limit_req zone=req burst=20;
}
```。
listen 443 ssl http2;。监控与调优工具
top、htop、ss -ti(查看TCP连接)。access_log定位高频请求或错误。ab或wrk模拟高并发请求,验证优化效果。注意:优化需结合服务器硬件配置(如CPU、内存、SSD磁盘)和实际业务场景调整,优先在测试环境验证后再应用到生产环境。